當前位置: 首頁> 最新文章列表> mysqli_result::fetch_array() 的使用與參數詳解

mysqli_result::fetch_array() 的使用與參數詳解

M66 2025-05-17

在PHP 中,如果你用(MySQL Improved Extension)擴展連接數據庫並執行查詢,當你執行像mysqli_query()這樣的查詢函數時,如果查詢返回了結果集(例如SELECT查詢),你會得到一個mysqli_result對象。

這個mysqli_result對像是一個用於操作查詢結果的接口,你可以通過它來逐行、逐字段地讀取查詢返回的數據。

mysqli_result 是什麼?

mysqli_result面向對象過程化兩種風格下都存在的一個結果集對象。它包含了數據庫查詢返回的所有行和列數據,但它並不會一次性把這些數據都加載到內存裡,而是需要通過各種方法去按需取出。

常見的獲取數據的方法有:

  • fetch_assoc() → 獲取一行關聯數組

  • fetch_row() → 獲取一行索引數組

  • fetch_object() → 獲取一行對象

  • fetch_array() → 獲取一行,既可以是關聯數組,也可以是索引數組,或者兩者都有(可配置)

本文重點說說fetch_array()

fetch_array() 方法怎麼用?

fetch_array()mysqli_result的一個方法,用於獲取當前結果集中的一行數據,返回形式是數組。

調用方式有兩種風格:

面向對像風格:

 $result = $mysqli->query("SELECT id, name FROM users");
$row = $result->fetch_array();

過程化風格:

 $result = mysqli_query($conn, "SELECT id, name FROM users");
$row = mysqli_fetch_array($result);

無論哪種方式,它每調用一次就取出一行,直到沒有更多行(此時返回false )。

參數都是什麼意思?

fetch_array()可以接收一個可選參數,用來控制返回數組的類型。
完整簽名:

 array mysqli_fetch_array(mysqli_result $result, int $resulttype = MYSQLI_BOTH)

參數$resulttype取值有:

  • MYSQLI_ASSOC → 只返回關聯數組(字段名作key)

  • MYSQLI_NUM → 只返回數字索引數組(字段索引作key)

  • MYSQLI_BOTH (默認)→ 返回關聯+ 數字索引混合數組

舉個例子:

 $conn = mysqli_connect("localhost", "username", "password", "database");
$result = mysqli_query($conn, "SELECT id, name FROM users");

while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
    echo "ID: " . $row['id'] . " Name: " . $row['name'] . "<br>";
}

這裡我們用MYSQLI_ASSOC ,所以$row裡就只有字段名作key,沒有數字索引。

實例代碼

完整例子: