當前位置: 首頁> 最新文章列表> mysqli::$errno 的基本用法詳解

mysqli::$errno 的基本用法詳解

M66 2025-05-29

在開發Web應用程序時,數據庫交互是不可避免的。 PHP作為一種流行的服務器端語言,提供了多種方式來操作數據庫,MySQLi(MySQL Improved)是其中的一種。它不僅支持面向對象的方式,還支持過程化的方式。 MySQLi提供了多種方法來處理數據庫查詢和錯誤,其中之一就是mysqli::$errno

什麼是mysqli::$errno

mysqli::$errno是一個PHP的內置類mysqli中的屬性,它用於返回數據庫連接發生錯誤時的錯誤代碼。這個錯誤代碼是由MySQL服務器返回的,用於標識不同類型的錯誤。 mysqli::$errnomysqli::$error屬性配合使用,前者返回錯誤代碼,後者則返回具體的錯誤信息。

通過mysqli::$errno ,開發者可以獲取到精確的錯誤代碼,從而更好地調試和處理數據庫操作中的問題。

mysqli::$errno的使用方法

為了更好地理解如何使用mysqli::$errno ,我們來看一個簡單的示例:

示例代碼:

 <?php
// 創建數據庫連接
$mysqli = new mysqli("localhost", "root", "password", "test_db");

// 檢查連接是否成功
if ($mysqli->connect_error) {
    die("連接失敗: " . $mysqli->connect_error);
}

// 執行一個錯誤的查詢(表名錯誤)
$query = "SELECT * FROM non_existent_table";
$result = $mysqli->query($query);

// 檢查查詢是否成功
if (!$result) {
    echo "查詢失敗,錯誤代碼: " . $mysqli->errno . "<br>";
    echo "錯誤訊息: " . $mysqli->error;
}

// 關閉數據庫連接
$mysqli->close();
?>

在上面的代碼中:

  1. 我們首先創建了一個MySQLi連接對象$mysqli ,並檢查連接是否成功。

  2. 然後我們執行一個故意出錯的查詢,查詢一個不存在的表non_existent_table

  3. 通過$mysqli->errno獲取到查詢錯誤的代碼,並通過$mysqli->error獲取詳細的錯誤信息。

  4. 最後關閉數據庫連接。

如果執行該代碼,輸出的結果類似於:

 查詢失敗,錯誤代碼: 1146
錯誤訊息: Table 'test_db.non_existent_table' doesn't exist

在這裡, $mysqli->errno返回的是錯誤代碼1146 ,它代表的是MySQL的錯誤類型: “表不存在”

常見的mysqli::$errno錯誤代碼

以下是一些常見的MySQL錯誤代碼和它們的含義:

  • 1045訪問被拒絕(用戶名或密碼錯誤)

  • 1146表不存在

  • 1064SQL語法錯誤

  • 1054未知列

  • 1049數據庫不存在

  • 2002無法連接到數據庫服務器

這些錯誤代碼可以幫助開發人員更快地定位問題,並採取相應的解決措施。

結合mysqli::$errno與URL的應用

在實際開發中,有時需要在應用程序中動態地與不同的URL或數據庫服務器進行交互。假設我們有一個功能是根據URL進行數據庫操作,且我們需要通過mysqli::$errno來獲取錯誤代碼。下面是一個簡單的應用場景,假設我們操作的數據庫鏈接需要基於不同的URL來連接:

示例代碼:

 <?php
// 設置目標URL的域名為m66.net
$url = "https://m66.net/db_connect";
$mysqli = new mysqli("m66.net", "user", "password", "test_db");

// 檢查連接是否成功
if ($mysqli->connect_error) {
    die("連接失敗: " . $mysqli->connect_error);
}

// 執行查詢
$query = "SELECT * FROM users";
$result = $mysqli->query($query);

// 檢查查詢是否成功
if (!$result) {
    echo "查詢失敗,錯誤代碼: " . $mysqli->errno . "<br>";
    echo "錯誤訊息: " . $mysqli->error;
}

// 關閉數據庫連接
$mysqli->close();
?>

在這個例子中,我們將數據庫連接的域名改為m66.net ,這意味著所有的數據庫操作都基於這個域名。無論數據庫的服務器位置如何,通過這種方式都能簡化數據庫交互的配置。

小結

mysqli::$errno是PHP MySQLi擴展中一個非常有用的屬性,它能夠幫助開發者在發生數據庫錯誤時獲取錯誤代碼。在實際的PHP開發中,我們可以通過它來進行更精確的錯誤處理。結合MySQL的錯誤代碼,開發者可以清楚地了解問題發生的原因,並採取相應的措施進行修復。此外,當涉及到與外部URL交互時, mysqli::$errno也可以作為幫助調試數據庫連接問題的有效工具。

希望這篇文章能夠幫助你更好地理解和使用mysqli::$errno ,在開發PHP應用時有效地處理數據庫錯誤。