const char *mysql_sqlstate(MYSQL *mysql)
説明
最近実行した SQL ステートメントに対する SQLSTATE エラーコードを含む、NULL 終端文字列を返します。エラーコードは 5 つの文字から構成されます。'00000'
は「エラーなし」を意味します。値は ANSI SQL と ODBC によって規定されています。可能な値のリストについては、付録B「エラー、エラーコード、および一般的な問題」を参照してください。
mysql_sqlstate()
によって返される SQLSTATE 値は、mysql_errno()
によって返される MySQL 固有のエラー番号とは異なります。たとえば、mysql クライアントプログラムは、次の形式を使用してエラーを表示します。ここで、1146
は mysql_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.7.7.14「mysql_errno()」、セクション23.7.7.15「mysql_error()」、およびセクション23.7.11.27「mysql_stmt_sqlstate()」を参照してください。