當前位置: 首頁> 最新文章列表> 如何使用mysql_fetch_array 函數獲取MySQL 查詢結果的關聯數組

如何使用mysql_fetch_array 函數獲取MySQL 查詢結果的關聯數組

gitbox 2025-06-03

在使用PHP 與MySQL 進行交互時,獲取查詢結果是常見且重要的一步。 mysql_fetch_array()是PHP 中用於獲取查詢結果的一個函數,它可以將結果作為關聯數組、數字索引數組,或者兩者兼有的形式返回,方便我們在後續程序中進行處理。

注意mysql_fetch_array()屬於mysql擴展,該擴展自PHP 7.0 起已被廢棄,建議新項目使用mysqliPDO_MySQL 。本文主要針對維護舊系統或學習目的。

一、準備工作:連接數據庫

在開始之前,我們需要連接到MySQL 數據庫並選擇一個數據庫:

<code> <?php // 連接數據庫$conn = mysql_connect("localhost", "username", "password");

if (!$conn) {
die("連接失敗: " . mysql_error());
}

// 選擇數據庫
mysql_select_db("test_db", $conn);
?>
</code>

二、執行SQL 查詢

執行一條簡單的SQL 查詢,獲取用戶表中的所有用戶信息:

<code> <?php $sql = "SELECT id, name, email FROM users"; $result = mysql_query($sql, $conn);

if (!$result) {
die("查詢失敗: " . mysql_error());
}
?>
</code>

三、使用mysql_fetch_array 獲取數據

接下來,我們使用mysql_fetch_array()獲取查詢結果:

<code> <?php while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { echo "ID: " . $row["id"] . "<br>"; echo "姓名: " . $row["name"] . "<br>"; echo "郵箱: " . $row["email"] . "<br><br>"; } ?> </code>

上面的代碼中,我們傳入了MYSQL_ASSOC常量,它表示我們希望以關聯數組的方式獲取數據。這意味著我們可以通過字段名來訪問每一列的值。

可選的取值模式

mysql_fetch_array()的第二個參數可以設置為以下幾種模式:

  • MYSQL_ASSOC :只返回關聯數組。

  • MYSQL_NUM :只返回數字索引數組。

  • MYSQL_BOTH (默認):同時返回關聯和數字索引數組。

示例(同時獲取關聯和索引):

<code> <?php while ($row = mysql_fetch_array($result)) { echo $row[0]; // 使用數字索引echo $row["name"]; // 使用字段名} ?> </code>

四、完整示例

下面是一個完整的使用流程:

<code> <?php // 連接數據庫$conn = mysql_connect("localhost", "root", "password"); if (!$conn) { die("連接失敗: " . mysql_error()); }

mysql_select_db("test_db", $conn);

// 查詢數據
$sql = "SELECT id, name, email FROM users";
$result = mysql_query($sql, $conn);

// 輸出結果
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
echo "<p>";
echo "用戶ID: " . $row["id"] . "<br>";
echo "用戶名: " . $row["name"] . "<br>";
echo "用戶郵箱: " . $row["email"] . "<br>";
echo "資料鏈接: <a href=' https://gitbox.net/user/ " . $row["id"] . "'>查看</a>";
echo "</p>";
}

// 關閉連接
mysql_close($conn);
?>
</code>

五、總結

mysql_fetch_array()提供了一種靈活的方式來獲取MySQL 查詢結果。雖然它已經不推薦在新項目中使用,但了解其工作方式對於理解PHP 和數據庫交互仍有幫助。在維護舊系統時,掌握如何使用它非常必要。

在開發新的系統時,推薦使用mysqli_fetch_assoc()PDOStatement::fetch()來代替。無論使用哪種方式,理解底層的查詢邏輯永遠是構建可靠應用的基礎。