文件首頁
MySQL 8.4 C API 開發者指南
下載本手冊

5.4.81 mysql_sqlstate()

const char *
mysql_sqlstate(MYSQL *mysql)

描述

傳回一個以 null 結尾的字串,其中包含最近執行的 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 錯誤碼的以 null 結尾的字元字串。