int mysql_stmt_prepare(MYSQL_STMT *stmt, const char
*stmt_str, unsigned long length)
説明
mysql_stmt_init()
によって戻されたステートメントハンドルを附与すると、ストリングstmt_str
をさすSQLステートメントを用意し、ステータスの値を戻します。ストリングの長さはlength
引数によって与えられるべきです。ストリングは一つのSQLステートメントで構成しなければなりません。ステートメントの終にセミコロン‘;
’)
or
\g
を加えるべきではありません。
アプリケーションには、疑問詞(‘?
’)文字をSQLストリングの適当な位置に埋め込むことによって、複数のパラメータマーカを含めることができます。
マーカはSQLステートメント中の特定の場所でだけ合法的です。例えば、これらは、(列にカラム値を規定する)VALUES()
ステートメントのINSERT
リストの中またはカラムと比較して比較値を規定するWHERE
条項中で容認されます。しかし、それらは、(テーブル名あるいはコラム名称のような)識別子に対しては容認されず、=
等号のようなバイナリーオペレーターの両オペランドを規定することも許されません。パラメータのタイプを決めることは多分不可能なので、後者の規制は必要です。パラメータは一般に、Data
Manipulation Language
(DML)ステートメントの中でのみ法的に有効で、Data
Definition Language
(DDL)ステートメント中では無効です。
パラメータマーカーは、ステートメントを実行する前にmysql_stmt_bind_param()
を使ってアプリケーション変数に縛り付けなければなりません。
戻り値
ステートメントがうまく準備された場合、ゼロ。エラーが起こった場合、ゼロ以外。
エラー
CR_COMMANDS_OUT_OF_SYNC
コマンドが妥当でないオーダーで実行されました。
CR_OUT_OF_MEMORY
メモリ不足。
CR_SERVER_GONE_ERROR
MySQLサーバが立ち去りました。
CR_SERVER_LOST
サーバへの接続がクエリー中に失われました。
CR_UNKNOWN_ERROR
未知のエラーが起こりました。
準備作業が不成功であった場合(即ち、mysql_stmt_prepare()
がゼロを戻す場合)、mysql_stmt_error()
を呼び出すことによって、エラーメッセージを取得することができます。
例
mysql_stmt_prepare()
の使用については、項23.2.7.10. 「mysql_stmt_execute()
」から、例を参照してください。