Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 27.1Mb
PDF (A4) - 27.1Mb
HTML Download (TGZ) - 7.2Mb
HTML Download (Zip) - 7.2Mb


23.8.7.67 mysql_sqlstate()

const char *mysql_sqlstate(MYSQL *mysql)

説明

最近実行した SQL ステートメントに対する SQLSTATE エラーコードを含む、NULL 終端文字列を返します。エラーコードは 5 つの文字から構成されます。'00000'エラーなしを意味します。値は ANSI SQL と ODBC によって規定されています。可能な値のリストについては、付録B「エラー、エラーコード、および一般的な問題を参照してください。

mysql_sqlstate() によって返される SQLSTATE 値は、mysql_errno() によって返される MySQL 固有のエラー番号とは異なります。たとえば、mysql クライアントプログラムは、次の形式を使用してエラーを表示します。ここで、1146mysql_errno() 値で、'42S02' は対応する mysql_sqlstate() 値です。

shell> SELECT * FROM no_such_table;
ERROR 1146 (42S02): Table 'test.no_such_table' doesn't exist

すべての MySQL エラー番号が SQLSTATE エラーコードにマップされるわけではありません。値 'HY000' (一般エラー) がマップされていないエラー番号に使われます。

mysql_real_connect() が失敗したあとに mysql_sqlstate() を呼び出した場合、mysql_sqlstate() は有益な値を返さないことがあります。たとえば、これは、ホストがサーバーによってブロックされ、SQLSTATE 値がクライアントに送信されることなく、接続が閉じられた場合に発生します。

戻り値

SQLSTATE エラーコードを含む NULL 終端文字列。

関連項目

セクション23.8.7.14「mysql_errno()」セクション23.8.7.15「mysql_error()」、およびセクション23.8.11.27「mysql_stmt_sqlstate()」を参照してください。


User Comments
Sign Up Login You must be logged in to post a comment.