PDOStatement::bindColumn

PHP PDO 参考手册Справочное руководство по PHP PDO

PDOStatement::bindColumn — Привязка столбца к переменной PHP (PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)


Описание

Синтаксис

bool PDOStatement::bindColumn ( mixed $column , mixed &$param [, int $type [, int $maxlen [, mixed $driverdata ]]] )

Привязывает определённую переменную к заданному столбцу в результирующем наборе запроса. Каждый вызов PDOStatement::fetch() или PDOStatement::fetchAll() обновляет все переменные, привязанные к столбцам.

Примечание:Не вся информация о столбцах всегда доступна до выполнения оператора. Портативные приложения должны вызывать эту функцию (метод) после PDOStatement::execute().
Однако при использовании драйвера PgSQL, чтобы иметь возможность привязать столбец LOB как поток, приложение должно вызвать этот метод перед вызовом PDOStatement::execute(), иначе идентификатор OID большого объекта возвращается как целое число.


Parameters

column
Номер столбца (с индексацией от 1) или имя столбца в результирующем наборе. Если используется имя столбца, обратите внимание, что имя должно совпадать по регистру с именем столбца, возвращаемым драйвером.

param
Имя переменной PHP, которую нужно привязать к столбцу

type
Тип данных параметра, задаваемый константами PDO::PARAM_*.

maxlen
Подсказка для предварительного выделения.

driverdata
Необязательный параметр, зависящий от драйвера.


Возвращаемые значения

Возвращает TRUE при успехе или FALSE при неудаче.


Примеры

Привязка выходных данных результирующего набора к переменным PHP

Привязка столбцов результирующего набора к переменным PHP — эффективный способ сделать данные, содержащиеся в каждой строке, сразу доступными приложению. В следующем примере показано, как PDO привязывает и извлекает столбцы с различными параметрами и значениями по умолчанию.

<?php
function readData($dbh) {
  $sql = 'SELECT name, colour, calories FROM fruit';
  try {
    $stmt = $dbh->prepare($sql);
    $stmt->execute();

    /*  通过列号绑定  */
    $stmt->bindColumn(1, $name);
    $stmt->bindColumn(2, $colour);
    
    /*  通过列名绑定  */
    $stmt->bindColumn('calories', $cals);

    while ($row = $stmt->fetch(PDO::FETCH_BOUND)) {
      $data = $name . "\t" . $colour . "\t" . $cals . "\n";
      print $data;
    }
  }
  catch (PDOException $e) {
    print $e->getMessage();
  }
}
readData($dbh);
?>

Приведённая выше процедура выведет:

apple   red     150
banana  yellow  175
kiwi    green   75
orange  orange  150
mango   red     200
strawberry      red     25

PHP PDO 参考手册Справочное руководство по PHP PDO

Другие расширения