MDB_Common::fetchAll()

MDB_Common::fetchAll() -- 結果セットを入れ子状の配列として取得する

概要

require_once 'MDB.php';

array &fetchAll (resource $result, integer [$fetchmode = MDB_FETCHMODE_DEFAULT], boolean [$rekey = FALSE], boolean [$force_array = FALSE], boolean [$group = FALSE])

説明

結果セット全体を取得し、それを入れ子状の配列で返して結果セットを開放します。

パラメータ

resource $result

query() あるいは executeQuery() が返した有効なリソース。

integer $fetchmode

使用する取得モード。

boolean $rekey

TRUE を指定すると、配列は以下のように変更されます。 結果セットのカラム数が二つより多い場合は、 値はカラム 2 からカラム n までの値の配列となります。 結果セットのカラムが二つだけの場合は、 返り値は二番目のカラムの値を表すスカラー値になります ($force_array パラメータで配列を強制している場合は除きます)。

boolean $force_array

クエリの返すカラム数が二つである場合にのみ使用します。 TRUE を設定すると、返り値の配列の値が スカラー値ではなく一要素の配列となります。

boolean boolean $group

TRUE を設定すると、返り値の配列の値が別の配列でラップされます。 同一のキー (最初のカラムの値) が複数表れた場合に、 それが既存の値を上書きせずに配列に追加されるようになります。

返り値

array - 入れ子状の配列、あるいは失敗した場合に MDB_Error を返します。

例外・エラー

表 39-1PEAR_Error の値

エラーコードエラーメッセージ原因対応
MDB_ERROR_TRUNCATED NULL 結果セットに二つ以上のカラムがありません。 取得用の SQL クエリを調べるか、別の fetch*() 関数を使用します。
その他のすべてのエラーコード  データベース固有のエラー PHP マニュアル のデータベース関連の章で、エラーの意味を調べます。 たいていの場合は SQL の文法が間違っていることが原因です。 たとえば Oracle データベースの SQL 文で LIMIT を使用していることなどです。

注意

この関数は、スタティックにコールする ことはできません。

参照

query() , limitQuery() , prepareQuery() , executeQuery() , fetchRow() , fetchOne() , fetchCol()