MDB_Common::getAssoc()
MDB_Common::getAssoc() – 結果セットを連想配列で取得する
Synopsis
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
)
Description
クエリの結果セット全体を取得し、それを連想配列で返します。
最初のカラムを連想配列のキーとします。
この関数はクエリの実行を行い、終了時に結果を開放します。
結果セットのカラム数が二つより多い場合は、
連想配列の値はカラム 2 から n までの値を持つ配列となります。
結果セットのカラム数がちょうどふたつの場合は、
返される値は二番目のカラムの値を含むスカラーとなります
(強制的にこれを配列にするには、パラメータ $force_array
を使用します)。
Parameter
-
string
$query
-
SQL クエリ。
-
array
$types
-
指定した場合は、結果セットのカラムの型が取得時に設定されます。
-
array
$params
-
指定した場合は、
prepareQuery()/
executeQuery()
はこの配列を実行時のパラメータとして使用します。
-
array
$param_types
-
指定した場合は、$param の値が
渡されたデータ型に自動的に設定されます。
-
integer
$fetchmode
-
使用する取得モード。
-
boolean
$force_array
-
クエリがちょうどふたつのカラムを返す場合にのみ使用します。
TRUE にすると、返される配列の値が
スカラーではなく一要素の配列となります。
-
boolean
boolean $group
-
TRUE を設定すると、返り値の配列の値が別の配列でラップされます。
同一のキー (最初のカラムの値) が複数表れた場合に、
それが既存の値を上書きせずに配列に追加されるようになります。
Return value
array
- クエリの結果を連想配列で返します。
Throws
Possible PEAR_Error values
エラーコード |
エラーメッセージ |
原因 |
対応 |
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 を使用していることなどです。
|
Note
This function can not be called
statically.