SQL クエリあるいはプリペアドステートメント。
プリペアドステートメントの実行時に使用される配列。 配列の要素数は、クエリ内のプレースホルダの数と同じでなければなりません。
指定された場合は、 prepare()/ execute() が使用されます。
警告 |
このメソッドでは、この引数にスカラー値を指定することはできません。 |
使用するフェッチモード。 デフォルトは DB_FETCHMODE_DEFAULT で、 これは DB の現在のフェッチモードを使用します。 DB の現在のデフォルトフェッチモードを変更するには setFetchMode() を使用します。 フェッチモードには、以下の値が指定できます。
DB_FETCHMODE_ORDERED
DB_FETCHMODE_ASSOC
DB_FETCHMODE_OBJECT
array - 最初の行のデータを含む配列、あるいは失敗した場合に DB_Error オブジェクトを返します。この配列が 通常の数値添字配列であるか連想配列であるかについては、 $fetchmode に依存します。数値添字の場合、 添字は 0 から始まります。
表 39-1PEAR_Error の値
エラーコード | エラーメッセージ | 原因 | 対応法 |
---|---|---|---|
DB_ERROR_INVALID | invalid | 準備された SQL 文が無効です。 | プレースホルダを使用する SQL 文を用いる場合は prepare() のドキュメント を参照ください。 |
DB_ERROR_MISMATCH | mismatch | パラメータの数が、プリペアドステートメント中の プレースホルダの数と一致しません。 | $query に渡した prepare() 済みの文中の プレースホルダの数が、$params で渡した項目の数と一致するかどうかを調べます。 |
DB_ERROR_NODBSELECTED | no database selected | データベースが選択されていません。 | connect() の際の DSN を調べます。 |
その他のエラーコード | データベース固有のエラー。 | PHP マニュアル のデータベース関連の部分を調べ、エラーの原因を判断してください。 たいていの場合は SQL 文が間違っていることが原因です。例えば Oracle データベースに対して SQL で LIMIT を使用しているなどが 考えられます。 |
例 39-1 $fetchmode = DB_FETCHMODE_ORDERED の場合の getRow() の使用法
出力は、以下のようになります。
|
例 39-2 $fetchmode = DB_FETCHMODE_ASSOC の場合の getRow() の使用法
出力は、以下のようになります。
|
例 39-3 $fetchmode = DB_FETCHMODE_OBJECT の場合の getRow() の使用法
出力は、以下のようになります。
|
例 39-4 プレースホルダがひとつの場合の getRow() の使用法
|
例 39-5 プレースホルダがふたつの場合の getRow() の使用法
|