Documentation Home

5.4.81 mysql_sqlstate()

const char *
mysql_sqlstate(MYSQL *mysql)

描述

返回一个以 null 结尾的字符串,其中包含最近执行的 SQL 语句的 SQLSTATE 错误代码。错误代码由五个字符组成。'00000' 意思是没有错误。这些值由 ANSI SQL 和 ODBC 指定。有关可能值的列表,请参阅 错误消息和常见问题

返回的 SQLSTATE 值 mysql_sqlstate()不同于 返回的 MySQL 特定错误号 mysql_errno()。例如mysql客户端程序显示错误的格式如下,其中1146mysql_errno()值, '42S02'是对应的 mysql_sqlstate()值:

$> SELECT * FROM no_such_table;
ERROR 1146 (42S02): Table 'test.no_such_table' doesn't exist

并非所有 MySQL 错误号都映射到 SQLSTATE 错误代码。该值'HY000'(一般错误)用于未映射的错误编号。

如果您mysql_sqlstate()mysql_real_connect() 失败后调用,mysql_sqlstate()可能不会返回有用的值。例如,如果主机被服务器阻止并且连接关闭而没有向客户端发送任何 SQLSTATE 值,则会发生这种情况。

返回值

包含 SQLSTATE 错误代码的以 null 结尾的字符串。