MDB_Common::getAssoc()

MDB_Common::getAssoc() -- 結果セットを連想配列で取得する

概要

require_once 'MDB.php';

array &getAssoc (string $query, array [$types = NULL], array [$params = array()], array [$param_types = NULL], integer [$fetchmode = MDB_FETCHMODE_DEFAULT], boolean [$force_array = FALSE], boolean [$group = FALSE])

説明

クエリの結果セット全体を取得し、それを連想配列で返します。 最初のカラムを連想配列のキーとします。 この関数はクエリの実行を行い、終了時に結果を開放します。 結果セットのカラム数が二つより多い場合は、 連想配列の値はカラム 2 から n までの値を持つ配列となります。 結果セットのカラム数がちょうどふたつの場合は、 返される値は二番目のカラムの値を含むスカラーとなります (強制的にこれを配列にするには、パラメータ $force_array を使用します)。

パラメータ

string $query

SQL クエリ。

array $types

指定した場合は、結果セットのカラムの型が取得時に設定されます。

array $params

指定した場合は、 prepareQuery()/ executeQuery() はこの配列を実行時のパラメータとして使用します。

array $param_types

指定した場合は、$param の値が 渡されたデータ型に自動的に設定されます。

integer $fetchmode

使用する取得モード。

boolean $force_array

クエリがちょうどふたつのカラムを返す場合にのみ使用します。 TRUE にすると、返される配列の値が スカラーではなく一要素の配列となります。

boolean boolean $group

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

返り値

array - クエリの結果を連想配列で返します。

例外・エラー

表 39-1PEAR_Error の値

エラーコードエラーメッセージ原因対応
MDB_ERROR_INVALID NULL 準備した SQL ステートメントが無効です。 SQL 文でワイルドカードを使用する方法については、 prepareQuery() のドキュメント を参照ください。
MDB_ERROR_NEED_MORE_DATA NULL プリペアド SQL ステートメントに代入するデータが足りません。 prepareQuery() で処理した SQL 文中のワイルドカードの数を確認します。 また、$params で指定した配列の要素数を確認します。 この要素数は、ワイルドカードの数と一致しなければなりません。
MDB_ERROR_NO_DB_SELECTED NULL データベースが選択されていません。 connect() で指定した DSN を確認します。
MDB_ERROR_TRUNCATED NULL 結果セットに二つ以上のカラムがありません。 SQL クエリを調べるか、別の get*() 関数を選択します。
その他のすべてのエラーコード  データベース固有のエラー PHP マニュアル のデータベース関連の章で、エラーの意味を調べます。 たいていの場合は SQL の文法が間違っていることが原因です。 たとえば Oracle データベースの SQL 文で LIMIT を使用していることなどです。

注意

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

参照

query() , limitQuery() , prepareQuery() , executeQuery() , getRow() , getOne() , getCol()