前節までで、一行ずつデータを取得する方法を見てきました。この節では、今までと同じようなデータの取得方法でループを使わず、一度に配列で取得する方法を見てみましょう。「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を返す |
○ ファイル
「FetchClassTest.php」ファイルをコピーして、次のPHPファイルをプロジェクトに追加してください。
ファイルの種類 | PHPファイル |
---|---|
ファイル名 | FetchAllTest.php |
○ プログラム
次のようにプログラムを記述してください。
FetchAllTest.php
○ 実行結果
○ 解説
28行目では、fetchAllメソッドを指定しています。パラメーターでクラスとして読み込む指定と、オブジェクト化するクラス名を指定しています。そのため30行目で出力される結果を見ると、Userクラスのオブジェクトの配列として返されていることを確認できます。