MDB_Common::execute()

MDB_Common::execute() – プリペアド SQL ステートメントを実行する

Synopsis

require_once 'MDB.php';

mixed execute ( resource $stmt , array $types = = null , array $params = array() , array $param_types = = null )

Description

execute() は、 prepareQuery() のプリペアド SQL ステートメントと 指定したデータを結合し、SQL クエリを実行します。

Parameter

resource $stmt

prepareQuery() から取得したクエリハンドル。

array $types

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

array $params

クエリに挿入するデータを含む、数値添字の配列。

array $param_types

指定した場合は、$param の値を自動的にその型に設定します。

Return value

mixed - リソース ID//MDB_OK、 あるいは失敗した場合に MDB_Error を返します。

Throws

Possible PEAR_Error values
エラーコード エラーメッセージ 原因 対応
MDB_ERROR_INVALID NULL SQL statment handle is not valid. SQL 文が prepareQuery() で正しく処理できたかどうかを確認します。 execute() が必要としているのは prepareQuery() が返したステートメントハンドルであり、 ステートメント自体ではないことに注意しましょう。
MDB_ERROR_NEED_MORE_DATA NULL プリペアド SQL ステートメントに代入するデータが足りません。 prepareQuery() で処理した SQL 文中のワイルドカードの数を確認します。 また、$data で指定した配列の要素数を確認します。 この要素数は、ワイルドカードの数と一致しなければなりません。
MDB_ERROR_NO_DB_SELECTED NULL データベースが選択されていません。 connect() で指定した DSN を確認します。
その他のすべてのエラーコード   データベース固有のエラー PHP マニュアル のデータベース関連の章で、エラーの意味を調べます。 たいていの場合は SQL の文法が間違っていることが原因です。 たとえば Oracle データベースの SQL 文で LIMIT を使用していることなどです。

Note

This function can not be called statically.