PDOStatement::bindColumn
(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)
PDOStatement::bindColumn — Связывает столбец с переменной PHP
Описание
$column
, mixed &$param
, int $type
= ?
, int $maxlen
= ?
, mixed $driverdata
= ?
) : boolPDOStatement::bindColumn() привязывает переменную к заданному столбцу в результирующем наборе запроса. Каждый вызов PDOStatement::fetch() или PDOStatement::fetchAll() будет обновлять все переменные, задавать им значения столбцов, с которыми они связаны.
Замечание:
В связи с тем, что информация о столбцах результирующего набора запроса не всегда доступна объекту PDO, пока запрос не будет запущен, приложениям следует вызывать этот метод после вызова PDOStatement::execute().
Однако, при работе с драйвером PgSQL, когда привязывается столбец с LOB-данными, приложению необходимо вызывать этот метод до вызова PDOStatement::execute(). В противном случае идентификатор большого объекта OID будет иметь тип integer.
Список параметров
-
column
-
Номер столбца (начиная с 1) или его имя в результирующем наборе запроса. Используя имя столбца, имейте в виду, что имя должно быть в том же регистре, в каком оно возвращено драйвером.
-
param
-
Имя переменной PHP, к которой требуется привязать столбец.
-
type
-
Тип данных параметра, заданный одной из констант
PDO::PARAM_*
. -
maxlen
-
Подсказка для предварительного выделения памяти под переменную.
-
driverdata
-
Дополнительные параметры для драйвера.
Возвращаемые значения
Возвращает true
в случае успешного завершения или false
в случае возникновения ошибки.
Примеры
Пример #1 Связывание результирующего набора с переменными 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
Смотрите также
- PDOStatement::execute() - Запускает подготовленный запрос на выполнение
- PDOStatement::fetch() - Извлечение следующей строки из результирующего набора
- PDOStatement::fetchAll() - Возвращает массив, содержащий все строки результирующего набора
- PDOStatement::fetchColumn() - Возвращает данные одного столбца следующей строки результирующего набора