2024 PHP Conference Japan

mysqli_stmt::$sqlstate

mysqli_stmt_sqlstate

(PHP 5, PHP 7, PHP 8)

mysqli_stmt::$sqlstate -- mysqli_stmt_sqlstate傳回先前語句操作的 SQLSTATE 錯誤

說明

物件導向風格

程序風格

mysqli_stmt_sqlstate(mysqli_stmt $statement): string

傳回一個字串,其中包含最近一次呼叫的預備語句函數的 SQLSTATE 錯誤碼,該函數可能成功或失敗。錯誤碼由五個字元組成。'00000' 表示沒有錯誤。這些值由 ANSI SQL 和 ODBC 指定。如需可能值的清單,請參閱 » https://mysqldev.dev.org.tw/doc/mysql/en/error-handling.html

參數

statement

僅限程序式風格:由 mysqli_stmt_init() 傳回的 mysqli_stmt 物件。

傳回值

傳回一個包含最後一個錯誤的 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(一般錯誤)用於未映射的錯誤。

另請參閱

新增注意事項

使用者貢獻的注意事項

此頁面沒有使用者貢獻的注意事項。
To Top