データをまとめて取得する

 前節までで、一行ずつデータを取得する方法を見てきました。この節では、今までと同じようなデータの取得方法でループを使わず、一度に配列で取得する方法を見てみましょう。「fetchAll」メソッドで取得します。

クラス名 PDOStatement
メソッド名 fetchAll
概要 結果セットからすべての行を取得する
パラメーターリスト
パラメター名 説明
int $fetch_style 次の行をどのように取り出すかを指定する定数値(省略可)
PDO::FETCH_ASSOC:列名の配列で返す
PDO::FETCH_BOTH:列名と、0から始まるインデックスを付けた配列で返す(デフォルト値)
PDO::FETCH_BOUND:TRUEを返し、結果セットの列データをbindColumnメソッドで指定した変数に代入する
PDO::FETCH_CLASS:結果セットをクラスのプロパティーにマッピングしたオブジェクトとして返す
PDO::FETCH_NUM:0から始まるインデックスを付けた配列で返す
mixed $fech_argument fetch_styleの値によって意味が変わる。PDO::FETCH_CLASSの場合はクラス名を指定するとそのオブジェクトが用意される
返り値
array 結果セットに残っている行を含む配列を返す。取得結果が0件の場合は空の配列を返す。失敗した場合はFALSEを返す
fetchAllメソッドの仕様

○ ファイル

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

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

サンプルダウンロード

○ プログラム

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

FetchAllTest.php

  1.  //SQL文を実行する
  2.  $result = $pdo -> query('SELECT * FROM users;');
  3.  //データを取得する
  4.  $rows = $result -> fetchAll(PDO::FETCH_CLASS, 'User');
  5.  var_dump($rows);
  6. }catch(PDOException $e){

○ 実行結果

実行結果
実行結果

○ 解説

 28行目では、fetchAllメソッドを指定しています。パラメーターでクラスとして読み込む指定と、オブジェクト化するクラス名を指定しています。そのため30行目で出力される結果を見ると、Userクラスのオブジェクトの配列として返されていることを確認できます。

前へ   次へ