When an error occurs in MySQL, the server returns two types of error values:
A MySQL-specific error code. This value is numeric. It is not portable to other database systems.
An SQLSTATE value. The value is a five-character string (for example,
'42S02'
). The values are specified by ANSI SQL and ODBC and are more standardized.
A message string that provides a textual description of the error is also available.
When an error occurs, you can access the MySQL error code, the SQLSTATE value, and the message string using C API functions:
MySQL error code: Call
mysql_errno()
SQLSTATE value: Call
mysql_sqlstate()
Error message: Call
mysql_error()
For prepared statements, the corresponding error functions are
mysql_stmt_errno()
,
mysql_stmt_sqlstate()
, and
mysql_stmt_error()
. All error
functions are described in Section 22.9, “MySQL C API”.
The first two characters of an SQLSTATE value indicate the error class:
'00'
indicates success.'01'
indicates a warning.'02'
indicates “not found.” These values are relevant only within the context of cursors and are used to control what happens when a cursor reaches the end of a data set.Other values indicate an exception.