首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

mysql_fetch_array() 與 mysql_fetch_row() 差異詳解(PHP 早期擴展)

     編輯:MySQL 綜合教學

注意

mysql_* 系列函數自 PHP 5.5 棄用,PHP 7.0 移除。新項目請使用 mysqli 或 PDO。本文僅供維護舊代碼參考。

函數對比

函數返回類型鍵名類型參數
mysql_fetch_array()陣列關聯鍵 / 數字鍵 / 兩者兼有$result, $result_type (MYSQL_ASSOC/NUM/BOTH)
mysql_fetch_row()陣列僅數字鍵 (0,1,2...)$result

代碼範例

$res = mysql_query("SELECT id, name FROM users");

// mysql_fetch_array 默認 MYSQL_BOTH
while ($row = mysql_fetch_array($res)) {
    echo $row['id'] . ' ' . $row[0];  // 既可用關聯鍵也可用數字鍵
}

// mysql_fetch_row 僅數字鍵
while ($row = mysql_fetch_row($res)) {
    echo $row[0] . ' ' . $row[1];  // 必須按列序訪問
}

核心差異

  • mysql_fetch_array() 靈活,支援關聯訪問,代碼可讀性高。
  • mysql_fetch_row() 輕量,僅數字索引,記憶體佔用略低。
  • 兩者均逐行移動結果集指針,FALSE 表示無更多行。

遷移建議

// mysqli 風格
$stmt = $mysqli->query("SELECT id, name FROM users");
while ($row = $stmt->fetch_assoc()) {  // 關聯數組
    echo $row['id'];
}
while ($row = $stmt->fetch_row()) {    // 數字數組
    echo $row[0];
}
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved