int mysql_real_query(MYSQL *mysql, const char
*stmt_str, unsigned long length)
説明
stmt_str
によって指定されたSQLステートメントを実行します。それは、length
バイトの長さ持つべきです。通常、ストリングをシングルSQLステートメントで構成すべきですが、ステートメントには、最後の部分にセミコロン(‘;
’)または\g
を追加すべきではありません。マルチステートメントの実行が有効になっている場合、ストリングには、セミコロンで仕切られた幾つかのステートメントを含めることができます。項23.2.9. 「マルチプルステートメントを実行するC
APIハンドリング」を参照してください。
バイナリーデータを含むステートメントには、mysql_query()
を使うことはできません。これの代わりに、mysql_real_query()
を使わなければなりません。(バイナリーデータには、‘\0
’キャラクターを含めることがでます。そのmysql_query()
はステートメントストリングの終わりであると解釈されます。)さらに、mysql_real_query()
はmysql_query()
より高速です。なぜなら、それはステートメントストトリリング上にstrlen()
を呼び出さないからです。
ステートメントが結果セットを返すべきであるかどうか知りたい場合、mysql_field_count()
を使ってこれをチェックすることができます。項23.2.3.22. 「mysql_field_count()
」を参照してください。
戻り値
コマンドの附与が成功した場合、ゼロ。エラーが起こった場合、ゼロ以外。
エラー
CR_COMMANDS_OUT_OF_SYNC
コマンドが妥当でないオーダーで実行されました。
CR_SERVER_GONE_ERROR
MySQLサーバが立ち去りました。
CR_SERVER_LOST
サーバへの接続がクエリー中に失われました。
CR_UNKNOWN_ERROR
未知のエラーが起こりました。