(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)
PDOStatement::bindColumn — Связывает столбец с переменной PHP
$column,&$var,$type = PDO::PARAM_STR,$maxLength = 0,$driverOptions = nullPDOStatement::bindColumn() привязывает переменную к заданному столбцу в результирующем наборе запроса. Каждый вызов PDOStatement::fetch() или PDOStatement::fetchAll() будет обновлять все переменные, задавать им значения столбцов, с которыми они связаны.
Замечание:
В связи с тем, что информация о столбцах результирующего набора запроса не всегда доступна объекту PDO, пока запрос не будет запущен, приложениям следует вызывать этот метод после вызова PDOStatement::execute().
Однако, при работе с драйвером PgSQL, когда привязывается столбец с LOB-данными, приложению необходимо вызывать этот метод до вызова PDOStatement::execute(). В противном случае идентификатор большого объекта OID будет иметь тип integer.
columnНомер столбца (начиная с 1) или его имя в результирующем наборе запроса. Используя имя столбца, имейте в виду, что имя должно быть в том же регистре, в каком оно возвращено драйвером.
varИмя переменной PHP, к которой требуется привязать столбец.
type
Тип данных параметра, заданный одной из констант PDO::PARAM_*.
maxLengthПодсказка для предварительного выделения памяти под переменную.
driverOptionsДополнительные параметры для драйвера.
Функция возвращает true, если выполнилась успешно, или false, если возникла ошибка.
Метод выдаёт ошибку уровня E_WARNING, если для атрибута PDO::ATTR_ERRMODE
установили режим PDO::ERRMODE_WARNING.
Метод выбрасывает исключение PDOException, если для атрибута PDO::ATTR_ERRMODE
установили режим PDO::ERRMODE_EXCEPTION.
Пример #1 Связывание результирующего набора с переменными PHP
Привязывание столбцов результирующего набора к PHP переменным является эффективным способом сразу сделать данные каждой строки набора доступными приложению. В следующем примере показано, как PDO позволяет привязывать переменные и получать данные столбцов, принимая различные настройки и умолчания.
<?php
$stmt = $dbh->prepare('SELECT name, colour, calories FROM fruit');
$stmt->execute();
/* Bind by column number */
$stmt->bindColumn(1, $name);
$stmt->bindColumn(2, $colour);
/* Bind by column name */
$stmt->bindColumn('calories', $cals);
while ($stmt->fetch(PDO::FETCH_BOUND)) {
print $name . "\t" . $colour . "\t" . $cals . "\n";
}Результат выполнения приведённого примера:
apple red 150 banana yellow 175 kiwi green 75 orange orange 150 mango red 200 strawberry red 25