PDOStatement::bindColumn

(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)

PDOStatement::bindColumn Связывает столбец с PHP переменной

Описание

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

PDOStatement::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() - Возвращает данные одного столбца следующей строки результирующего набора

Коментарии

Hello,

it is important to keep in mind that in any SQL query, the names of the columns should be surrounded by reverse quotes (`).

<?php 
$sql 
"SELECT `col1`, `col2` FROM table";
?>

To prevent any confusion with SQL reserved words. For example, I have had a column called 'key' and it has been a hard time to fix the bug. Since I have used `key`, it's fine.
2018-10-01 12:00:59
http://php5.kiev.ua/manual/ru/pdostatement.bindcolumn.html

    Поддержать сайт на родительском проекте КГБ