(PHP 5, PHP 7, PHP 8)
mysqli_stmt::$sqlstate -- mysqli_stmt_sqlstate — 傳回先前語句操作的 SQLSTATE 錯誤
物件導向風格
程序風格
傳回一個字串,其中包含最近一次呼叫的預備語句函數的 SQLSTATE 錯誤碼,該函數可能成功或失敗。錯誤碼由五個字元組成。'00000'
表示沒有錯誤。這些值由 ANSI SQL 和 ODBC 指定。如需可能值的清單,請參閱 » https://mysqldev.dev.org.tw/doc/mysql/en/error-handling.html。
傳回一個包含最後一個錯誤的 SQLSTATE 錯誤碼的字串。錯誤碼由五個字元組成。'00000'
表示沒有錯誤。
範例 #1 物件導向風格
<?php
/* 開啟連線 */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* 檢查連線 */
if (mysqli_connect_errno()) {
printf("連線失敗: %s\n", mysqli_connect_error());
exit();
}
$mysqli->query("CREATE TABLE myCountry LIKE Country");
$mysqli->query("INSERT INTO myCountry SELECT * FROM Country");
$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = $mysqli->prepare($query)) {
/* 刪除表格 */
$mysqli->query("DROP TABLE myCountry");
/* 執行查詢 */
$stmt->execute();
printf("錯誤:%s。\n", $stmt->sqlstate);
/* 關閉語句 */
$stmt->close();
}
/* 關閉連線 */
$mysqli->close();
?>
範例 #2 程序式風格
<?php
/* 開啟連線 */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
/* 檢查連線 */
if (mysqli_connect_errno()) {
printf("連線失敗: %s\n", mysqli_connect_error());
exit();
}
mysqli_query($link, "CREATE TABLE myCountry LIKE Country");
mysqli_query($link, "INSERT INTO myCountry SELECT * FROM Country");
$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = mysqli_prepare($link, $query)) {
/* 刪除表格 */
mysqli_query($link, "DROP TABLE myCountry");
/* 執行查詢 */
mysqli_stmt_execute($stmt);
printf("錯誤: %s.\n", mysqli_stmt_sqlstate($stmt));
/* 關閉陳述式 */
mysqli_stmt_close($stmt);
}
/* 關閉連線 */
mysqli_close($link);
?>
以上範例將輸出
Error: 42S02.
注意:
請注意,並非所有 MySQL 錯誤都已映射到 SQLSTATE。值
HY000
(一般錯誤)用於未映射的錯誤。