文档首页
MySQL 8.4 C API 开发者指南
下载本手册
PDF (US Ltr) - 1.4Mb
PDF (A4) - 1.4Mb


5.4.81 mysql_sqlstate()

const char *
mysql_sqlstate(MYSQL *mysql)

描述

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

mysql_sqlstate() 返回的 SQLSTATE 值不同于由 mysql_errno() 返回的特定于 MySQL 的错误号。例如,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_real_connect() 失败后调用 mysql_sqlstate()mysql_sqlstate() 可能不会返回有用的值。例如,如果主机被服务器阻止并且连接在没有将任何 SQLSTATE 值发送到客户端的情况下关闭,就会发生这种情况。

返回值

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