const char *
mysql_sqlstate(MYSQL *mysql)
Returns a null-terminated string containing the SQLSTATE error
code for the most recently executed SQL statement. The error
code consists of five characters. '00000'
means “no error.” The values are specified by
ANSI SQL and ODBC. For a list of possible values, see
Error Messages and Common Problems.
SQLSTATE values returned by
mysql_sqlstate()
differ from
MySQL-specific error numbers returned by
mysql_errno()
. For example,
the mysql client program displays errors
using the following format, where 1146
is
the mysql_errno()
value and
'42S02'
is the corresponding
mysql_sqlstate()
value:
$> SELECT * FROM no_such_table;
ERROR 1146 (42S02): Table 'test.no_such_table' doesn't exist
Not all MySQL error numbers are mapped to SQLSTATE error
codes. The value 'HY000'
(general error) is
used for unmapped error numbers.
If you call mysql_sqlstate()
after mysql_real_connect()
fails, mysql_sqlstate()
might
not return a useful value. For example, this happens if a host
is blocked by the server and the connection is closed without
any SQLSTATE value being sent to the client.