(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
= null
PDOStatement::bindColumn() 用于将特定变量绑定到查询结果集中的给定列。每次调用 PDOStatement::fetch() 或 PDOStatement::fetchAll() 将更新所有绑定到列的变量。
注意:
由于在语句执行之前,PDO 并不总是可以获得关于列的信息,因此可移植的应用程序应该在 PDOStatement::execute() *之后* 调用此函数。
但是,为了能够在使用 *PgSQL 驱动程序* 时将 LOB 列绑定为流,应用程序应该在调用 PDOStatement::execute() *之前* 调用此方法,否则大型对象 OID 将作为整数返回。
column
结果集中的列号(从 1 开始)或列名。如果使用列名,请注意名称应与驱动程序返回的列名大小写匹配。
var
将列绑定到的 PHP 变量的名称。
type
参数的数据类型,由 PDO::PARAM_*
常量 指定。
maxLength
预分配的提示。
driverOptions
驱动程序的可选参数。
如果属性 PDO::ATTR_ERRMODE
设置为 PDO::ERRMODE_WARNING
,则发出级别为 E_WARNING
的错误。
如果属性 PDO::ATTR_ERRMODE
设置为 PDO::ERRMODE_EXCEPTION
,则抛出 PDOException。
示例 #1 将结果集输出绑定到PHP变量
将结果集中的列绑定到PHP变量是使每一行中包含的数据立即可用于应用程序的有效方法。以下示例演示了PDO如何允许您使用各种选项和智能默认值来绑定和检索列。
<?php
$stmt = $dbh->prepare('SELECT name, colour, calories FROM fruit');
$stmt->execute();
/* 按列号绑定 */
$stmt->bindColumn(1, $name);
$stmt->bindColumn(2, $colour);
/* 按列名绑定 */
$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