MySQL でエラーが発生すると、サーバーは 2 種類のエラー値を返します。
MySQL 固有のエラーコード。この値は数字です。これはほかのデータベースシステムには移植できません。
SQLSTATE 値。値は 5 文字の文字列です (たとえば、
'42S02'
)。この値は、ANSI SQL および ODBC から採用されており、より標準化されています。
エラーの説明を示すメッセージ文字列も利用できます。
エラーが発生した場合は、C API 関数を使用して、MySQL のエラーコード、SQLSTATE 値、およびメッセージ文字列を利用できます。
MySQL エラーコード: Call
mysql_errno()
SQLSTATE 値: Call
mysql_sqlstate()
エラーメッセージ: Call
mysql_error()
準備済みステートメントの場合、対応するエラー関数は mysql_stmt_errno()
、mysql_stmt_sqlstate()
、および mysql_stmt_error()
です。すべてのエラー関数については、セクション23.7「MySQL C API」で説明しています。
最後のステートメントのエラー、警告、および注意の数は、mysql_warning_count()
を呼び出すことによって取得できます。セクション23.7.7.73「mysql_warning_count()」を参照してください。
SQLSTATE 値の最初の 2 文字はエラークラスを示しています。
クラス =
'00'
は成功を示しています。クラス =
'01'
は警告を示しています。クラス =
'02'
は 「Not Found」 を示しています。これは、カーソルのコンテキストに関係しており、カーソルがデータセットの最後に達したときの動作を制御するために使用します。この状況は、行が取得されないSELECT ... INTO
ステートメントでも発生します。var_list
クラス >
'02'
は例外を示しています。