変数を指定してデータを取得する

 フェッチスタイルに「FETCH_BOUND」を指定して取得すると、指定した変数にデータを格納した状態で取得することができます。

 このフェッチスタイルを使うには、結果セットの列と変数を「bindColumn」メソッドを使ってバインドさせる必要があります。

クラス名 PDOStatement
メソッド名 bindColumn
概要 結果セットから列と変数をバインドする
パラメーターリスト
パラメター名 説明
mixed $column 結果セットを0から始まるインデックスか、列名を指定する
mixed $param 列をバインドする変数を指定する
返り値
bool 成功したらTRUE、失敗したらFALSEを返す
bindColumnメソッドの仕様

○ ファイル

 「FetchBothTest.php」ファイルをコピーして、次のPHPファイルをプロジェクトに追加してください。

ファイルの種類 PHPファイル
ファイル名 FetchBoundTest.php

サンプルダウンロード

○ プログラム

 次のようにプログラムを記述してください。

FetchBothTest.php

  1.  //SQL文を実行する
  2.  $result = $pdo -> query('SELECT * FROM users;');
  3.  //結果セットの列と変数を結びつける
  4.  $result -> bindColumn('id', $id);
  5.  $result -> bindColumn('user_name', $username);
  6.  $result -> bindColumn('password', $password);
  7.  $result -> bindColumn('name', $name);
  8.  //データを取得する
  9.  while($row = $result -> fetch(PDO::FETCH_BOUND)){
  10.   var_dump($id);
  11.   var_dump($username);
  12.   var_dump($password);
  13.   var_dump($name);
  14.  }
  15. }catch(PDOException $e){
  16.  var_dump($e -> getMessage());
  17. }

○ 実行結果

実行結果
実行結果

○ 解説

 25~28行目で、結果セットのそれぞれの列名を指定して、バインドする変数を指定しています。これによりfetchメソッドで行を読み込むと、バインドした変数にそれぞれの列のデータが格納されます。32~35行目で変数の内容を出力していますが、実行結果を確認すると、それぞれの列のデータが変数に格納されていることを確認できます。

前へ   次へ