DB_common::executeMultiple()

DB_common::executeMultiple() -- 配列の各要素内に準備された SQL 文を実行する

概要

integer executeMultiple (resource $stmt, array $data)

説明

$data (多次元の配列) の中の情報を自動的に execute() に渡し、 prepare() で指定した SQL 文を実行します。

パラメータ

resource $stmt

prepare() が返すクエリハンドル。

array $data

クエリに挿入するデータを含む配列。

返り値

integer - 成功した場合に DB_OK、 失敗した場合に DB_Error オブジェクトを返します。

例外・エラー

表 39-1PEAR_Error の値

エラーコードエラーメッセージ原因対応法
DB_ERROR_INVALID invalid 有効な SQL 文ハンドルではありません。 現在実行している SQL 文と prepare() を調べます。 executeMultiple() に必要なのは、 prepare() が返すハンドルであって SQL 文自身ではないことに注意しましょう。
DB_ERROR_MISMATCH mismatch パラメータの数が、文中のプレースホルダの数と一致しません。 $query に渡した prepare() 済みの文中の プレースホルダの数が、$params で渡した項目の数と一致するかどうかを調べます。
DB_ERROR_NODBSELECTED no database selected データベースが選択されていません。 connect() の際の DSN を調べます。
その他のエラーコード  データベース固有のエラー。 PHP マニュアル のデータベース関連の部分を調べ、エラーの原因を判断してください。 たいていの場合は SQL 文が間違っていることが原因です。例えば Oracle データベースに対して SQL で LIMIT を使用しているなどが 考えられます。

注意

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

警告

実行時にエラーが発生した場合は、この関数は停止します。 それ以降のデータは処理されません。

警告

$data に渡す値は、リテラルである必要があります。 SQL 関数 (例えば CURDATE() など) を渡さないでください。 実行時に処理される SQL 関数は、プリペアドステートメント内に記述する 必要があります。

参照

"導入 - 準備と実行" "導入 - autoPrepare & autoExecute" prepare() execute() autoPrepare() autoExecute()