PDOStatement::bindColumn


PDOStatement::bindColumn — 绑定一列到一个 PHP 变量(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)

说明

语法

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

安排一个特定的变量绑定到一个查询结果集中给定的列。每次调用 PDOStatement::fetch() 或 PDOStatement::fetchAll() 都将更新所有绑定到列的变量。

注意:在语句执行前 PDO 有关列的信息并非总是可用,可移植的应用应在 PDOStatement::execute() 之后 调用此函数(方法)。
但是,当使用 PgSQL 驱动 时,要想能绑定一个 LOB 列作为流,应用程序必须在调用 PDOStatement::execute() 之前 调用此方法,否则大对象 OID 作为一个整数返回。

参数

column
结果集中的列号(从1开始索引)或列名。如果使用列名,注意名称应该与由驱动返回的列名大小写保持一致。

param
将绑定到列的 PHP 变量名称

type
通过 PDO::PARAM_* 常量指定的参数的数据类型。

maxlen
预分配提示。

driverdata
驱动的可选参数。

返回值

成功时返回 TRUE, 或者在失败时返回 FALSE。

实例

把结果集输出绑定到 PHP 变量

绑定结果集中的列到PHP变量是一种使每行包含的数据在应用程序中立即可用的有效方法。下面的例子演示了 PDO 怎样用多种选项和缺省值绑定和检索列。

  1. <?php
  2. function readData($dbh) {
  3. $sql = 'SELECT name, colour, calories FROM fruit';
  4. try {
  5. $stmt = $dbh->prepare($sql);
  6. $stmt->execute();
  7.  
  8. /* 通过列号绑定 */
  9. $stmt->bindColumn(1, $name);
  10. $stmt->bindColumn(2, $colour);
  11. /* 通过列名绑定 */
  12. $stmt->bindColumn('calories', $cals);
  13.  
  14. while ($row = $stmt->fetch(PDO::FETCH_BOUND)) {
  15. $data = $name . "\t" . $colour . "\t" . $cals . "\n";
  16. print $data;
  17. }
  18. }
  19. catch (PDOException $e) {
  20. print $e->getMessage();
  21. }
  22. }
  23. readData($dbh);
  24. ?>

以上例程会输出:

  1. apple red 150
  2. banana yellow 175
  3. kiwi green 75
  4. orange orange 150
  5. mango red 200
  6. strawberry red 25