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

PHP 使用 mysql_fetch_assoc 將查詢結果轉為關聯陣列

     編輯:PHP 綜合知識

前言

mysql_fetch_assoc() 從結果集取得一行並以**欄位名為鍵**的關聯陣列回傳,是處理查詢結果最常用的函數之一(舊 mysql 擴展)。

語法

array mysql_fetch_assoc(resource $result)

完整範例

<?php
$user = 'abc'; $pass = '1234';
$db = mysql_connect('localhost', $user, $pass);
if (!$db) die('無法連線資料庫');

mysql_select_db('w3db', $db);
mysql_query("SET NAMES utf8", $db);

$query = "SELECT ISBN, Title, Author FROM articles";
$res = mysql_query($query, $db);

while ($row = mysql_fetch_assoc($res)) {
    echo "ISBN = {$row['ISBN']}<br>\n";
    echo "Title = {$row['Title']}<br>\n";
    echo "Author = {$row['Author']}<br>\n";
}

mysql_free_result($res);
mysql_close($db);
?>

⚠️ 重要提醒

mysql_* 函數已於 PHP 7.0 移除。新專案請使用 MySQLi 或 PDO:

MySQLi 版

$mysqli = new mysqli('localhost', 'user', 'pass', 'db');
$res = $mysqli->query("SELECT ISBN, Title, Author FROM articles");
while ($row = $res->fetch_assoc()) { /* ... */ }
$res->free();

PDO 版

$pdo = new PDO("mysql:host=localhost;dbname=db;charset=utf8", 'user', 'pass');
$stmt = $pdo->query("SELECT ISBN, Title, Author FROM articles");
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { /* ... */ }

mysql_fetch_assoc vs mysql_fetch_array

  • mysql_fetch_assoc():僅回傳**關鍵字索引**(欄位名)。
  • mysql_fetch_array($result, MYSQL_ASSOC):相同效果。
  • mysql_fetch_array($result, MYSQL_BOTH):同時有數值索引 (0,1,2...) 與關鍵字索引,**記憶體佔用雙倍**。

結語

習慣使用關鍵字索引存取欄位,程式碼可讀性高、不易因欄位順序變動出錯。現代專案請直接用 PDO::FETCH_ASSOC 或 mysqli_fetch_assoc()。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved