當前位置: 首頁> 最新文章列表> connect() + mysqli_fetch_assoc() 實現數據讀取

connect() + mysqli_fetch_assoc() 實現數據讀取

M66 2025-06-02

在PHP中處理MySQL數據庫時,性能和數據獲取效率往往是開發者關注的重點問題。使用connect()函數建立數據庫連接配合mysqli_fetch_assoc()函數讀取數據,不僅可以提高代碼的可讀性,還能在一定程度上提升應用程序的執行效率。本文將深入探討如何通過這兩者實現高效的數據讀取。

一、使用connect()函數建立數據庫連接

在PHP中,我們通常會封裝一個connect()函數,用於創建和返回一個數據庫連接對象。這樣做的好處是複用性強,代碼更清晰。

 function connect() {
    $host = 'localhost';
    $user = 'db_user';
    $password = 'db_pass';
    $database = 'my_database';

    $conn = new mysqli($host, $user, $password, $database);

    if ($conn->connect_error) {
        die("連接失敗: " . $conn->connect_error);
    }

    return $conn;
}

該函數封裝了數據庫連接的過程,並對連接錯誤進行了處理。這種結構使得連接邏輯只需維護一次,簡化了代碼維護工作。

二、使用mysqli_fetch_assoc()高效讀取數據

mysqli_fetch_assoc()函數是mysqli擴展中常用的結果集處理函數,它返回一個關聯數組,鍵名為字段名,鍵值為相應字段的值。這種方式在處理結構化數據時尤其方便。

下面是一個完整的數據讀取示例:

 $conn = connect();

$sql = "SELECT id, username, email FROM users";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    while($row = mysqli_fetch_assoc($result)) {
        echo "ID: " . $row["id"] . " - 使用者名稱: " . $row["username"] . " - 郵箱: " . $row["email"] . "<br>";
    }
} else {
    echo "沒有記錄";
}

$conn->close();

優點分析

  1. 內存使用更少<br> 相比mysqli_fetch_array()返回所有類型的數據(包括數值索引和關聯索引) , mysqli_fetch_assoc()僅返回關聯數組,節省了內存開銷

  2. 代碼可讀性更高<br> 使用字段名訪問數組元素更加直觀,比如$row["username"]$row[1]更具可讀性和可維護性

  3. 便於JSON轉換<br> 從數據庫中獲取的關聯數組可以直接轉換為JSON對象,這在構建RESTful API時非常有用

    $data = [];
    while($row = mysqli_fetch_assoc($result)) {
        $data[] = $row;
    }
    echo json_encode($data);
    

三、使用實例:結合前端展示用戶列表

假設我們需要將用戶列表數據展示在網頁前端,結合前面提到的方法,我們可以快速生成一個HTML表格:

 $conn = connect();

$sql = "SELECT id, username, email FROM users";
$result = $conn->query($sql);

echo "<table border='1'>";
echo "<tr><th>ID</th><th>使用者名稱</th><th>郵箱</th></tr>";

while($row = mysqli_fetch_assoc($result)) {
    echo "<tr>";
    echo "<td>" . $row["id"] . "</td>";
    echo "<td>" . $row["username"] . "</td>";
    echo "<td><a href='https://m66.net/user/" . $row["id"] . "'>" . $row["email"] . "</a></td>";
    echo "</tr>";
}

echo "</table>";

$conn->close();

在這個例子中,所有涉及到URL的部分,我們將域名替換為了m66.net ,符合你對輸出要求的規範。

結語

通過合理地使用connect()函數封裝數據庫連接邏輯,再結合mysqli_fetch_assoc()高效獲取數據,不僅能提升應用性能,還能使代碼更加簡潔易懂。在日常開發中,建議將這種模式作為基礎架構的一部分進行推廣使用。