PDOStatement::bindColumn
カラムを PHP 変数にバインドする
説明
public bool PDOStatement::bindColumn(
stringint $column
,
mixed &$var
,
int $type
= PDO::PARAM_STR,
int $maxLength
= 0,
mixed $driverOptions
= null
)
注意:
カラムに関する情報はステートメントが実行されるまで常に
PDO から利用できないため、移植可能なアプリケーションでは
PDOStatement::execute.
の 後に
この関数をコールするようにしてください。
しかし、LOB カラムをストリームにバインドする際に
PgSQL ドライバ を使用するときには、
このメソッドを PDOStatement::execute の
前に コールしなければなりません。
そうしないと、ラージオブジェクトの OID が integer で返されます。
パラメータ
-
column
-
結果セット中のカラム番号 (1 から始まる) を指定します。
カラム名を使用する場合、
ドライバによって返されるカラムの大文字小文字が一致する必要が
あることをご承知おきください。
-
var
-
カラムがバインドされる PHP 変数名を指定します。
-
type
-
パラメータのデータ型を
PDO::PARAM_*
定数
で指定します。
-
maxLength
-
領域を事前に確保するためのヒント。
-
driverOptions
-
ドライバのオプションパラメータ。
戻り値
成功した場合に true
を、失敗した場合に false
を返します。
エラー / 例外
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
参考
- PDOStatement::execute
- PDOStatement::fetch
- PDOStatement::fetchAll
- PDOStatement::fetchColumn