(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