PDOStatement::bindColumn — 綁定一列到一個PHP 變數(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)
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變數是使每行包含的資料在應用程式中立即可用的有效方法。下面的範例示範了PDO 怎樣用多種選項和預設值綁定和擷取列。
<?phpfunction 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 150banana yellow 175kiwi green 75orange orange 150mango red 200strawberry red 25