(PHP 5, PHP 7, PHP 8)
mysqli::$sqlstate -- mysqli_sqlstate — 傳回前一次 MySQL 操作的 SQLSTATE 錯誤
物件導向風格
程序式風格
傳回一個包含最後一個錯誤的 SQLSTATE 錯誤代碼的字串。錯誤代碼由五個字元組成。'00000'
表示沒有錯誤。這些值是由 ANSI SQL 和 ODBC 指定的。關於可能值的列表,請參閱 » https://mysqldev.dev.org.tw/doc/mysql/en/error-handling.html。
注意事項:
請注意,並非所有 MySQL 錯誤都已映射到 SQLSTATE。值
HY000
(一般錯誤)用於未映射的錯誤。
傳回一個包含最後一個錯誤的 SQLSTATE 錯誤代碼的字串。錯誤代碼由五個字元組成。'00000'
表示沒有錯誤。
範例 #1 $mysqli->sqlstate 範例
物件導向風格
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* 資料表 City 已存在,因此我們應該會收到錯誤 */
try {
$mysqli->query("CREATE TABLE City (ID INT, Name VARCHAR(30))");
} catch (mysqli_sql_exception) {
printf("錯誤 - SQLSTATE %s。\n", $mysqli->sqlstate);
}
程序式風格
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
/* 資料表 City 已存在,因此我們應該會收到錯誤 */
try {
mysqli_query($link, "CREATE TABLE City (ID INT, Name VARCHAR(30))");
} catch (mysqli_sql_exception) {
printf("錯誤 - SQLSTATE %s。\n", mysqli_sqlstate($link));
}
以上範例將輸出
Error - SQLSTATE 42S01.