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 taken
from 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, the MySQL error code, SQLSTATE value, and message string are available 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 23.8, “MySQL C API”.
The number of errors, warnings, and notes for the previous
statement can be obtained by calling
mysql_warning_count(). See
Section 23.8.7.72, “mysql_warning_count()”.
The first two characters of an SQLSTATE value indicate the error class:
Class = '00' indicates success.
Class = '01' indicates a warning.
Class = '02' indicates “not
found.” This is relevant within the context of cursors
and is used to control what happens when a cursor reaches the
end of a data set. This condition also occurs for
SELECT ... INTO
statements that
retrieve no rows.
var_list
Class > '02' indicates an exception.