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

PHP 使用 mysql_fetch_assoc 查詢資料庫並存入陣列

     編輯:PHP 相關知識

前言

注意: mysql_* 函數已於 PHP 7.0 移除,本文僅供舊版維護參考。新專案請改用 mysqli_fetch_assoc() 或 PDO::FETCH_ASSOC。

mysql_fetch_assoc 基本語法

array mysql_fetch_assoc ( resource $result )
  • 返回關聯陣列,鍵名為欄位名稱,值為欄位資料。
  • 若無更多資料或失敗返回 FALSE。

查詢並存入陣列完整範例

<?php
$conn = mysql_connect('localhost', 'abc', '1234');
if (!$conn) die('連線失敗: ' . mysql_error());

if (!mysql_select_db('w3db', $conn)) die('選擇資料庫失敗');

$query = "SELECT ISBN, Title, Author FROM articles";
$result = mysql_query($query, $conn);
if (!$result) die('查詢失敗: ' . mysql_error());

$data = [];
while ($row = mysql_fetch_assoc($result)) {
    $data[] = $row; // 將每列關聯陣列存入大陣列
}

// 釋放資源
mysql_free_result($result);
mysql_close($conn);

// 後續處理 $data
print_r($data);
?>

常見操作:直接輸出

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

現代 mysqli 替代寫法

<?php
$mysqli = new mysqli('localhost', 'abc', '1234', 'w3db');
$stmt = $mysqli->prepare("SELECT ISBN, Title, Author FROM articles");
$stmt->execute();
$result = $stmt->get_result();

$data = $result->fetch_all(MYSQLI_ASSOC); // 一次取得所有關聯陣列

$stmt->close();
$mysqli->close();

print_r($data);
?>

總結

mysql_fetch_assoc 是以關聯陣列形式取得資料最直觀的函數,但請儘速遷移至 mysqli 或 PDO。善用 fetch_all() 可簡化迴圈程式碼。希望本文對您的 PHP 程式設計有所幫助。

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