Web aym.pekori.to

PDOStatement::bindColumn

(no version information, might be only in CVS)

PDOStatement::bindColumn --  カラムを PHP 変数にバインドする

説明

bool PDOStatement::bindColumn ( mixed column, mixed &param [, int type] )

PDOStatement::bindColumn() は、 クエリからの結果セット中にあるカラムにバインドされた特定の値を 取得するための準備をします。 PDOStatement::fetch() もしくは PDOStatement::fetchAll() がコールされる度に、カラムにバインドされた全ての変数は更新されます。

注意: カラムに関する情報はステートメントが実行されるまで常に PDO から利用できないため、移植可能なアプリケーションでは PDO::execute()後に この関数をコールするようにしてください。

パラメータ

column

結果セット中のカラム番号 (1 から始まる) を指定します。 カラム名を使用する場合、 ドライバによって返されるカラムの大文字小文字が一致する必要が あることをご承知おきください。

param

カラムがバインドされる PHP 変数名を指定します。

type

パラメータのデータ型を PDO::PARAM_* 定数で指定します。

例 1. バインドした結果セットは PHP 変数に出力する

PHP 変数にバインドしている結果セットのカラムは、 アプリケーションで利用可能な各行に含まれるデータを作成するための 効果的な方法です。 以下のサンプルは、どうやって PDO が様々なオプションやを理にかなったデフォルト値を用いて カラムをバインド、取得するかを例示しています。

<?php
function 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     150
banana  yellow  175
kiwi    green   75
orange  orange  150
mango   red     200
strawberry      red     25

参考

PDOStatement::execute()
PDOStatement::fetch()
PDOStatement::fetchAll()
PDOStatement::fetchColumn()