文件首頁
MySQL 9.0 C API 開發人員指南
下載本手冊
PDF (美國信紙) - 1.4Mb
PDF (A4) - 1.4Mb


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 結尾的字元字串。