PDF (US Ltr) - 1.4Mb
PDF (A4) - 1.4Mb
const char *
mysql_sqlstate(MYSQL *mysql)
返回一个以 NULL 结尾的字符串,包含最近执行的 SQL 语句的 SQLSTATE 错误代码。错误代码由五个字符组成。'00000'
表示“没有错误。” 这些值由 ANSI SQL 和 ODBC 规范。有关可能值的列表,请参见错误消息和常见问题.
由mysql_sqlstate()
返回的 SQLSTATE 值与由mysql_errno()
返回的特定于 MySQL 的错误号不同。例如,mysql 客户端程序使用以下格式显示错误,其中1146
是mysql_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 值发送到客户端的情况下关闭,就会发生这种情况。