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

PHP 查詢 MySQL 資料表記錄完整實作指南

     編輯:PHP 相關知識

前言

PHP 與 MySQL 是經典組合。本文系統整理使用傳統 mysql_* 函數查詢資料的完整流程,並說明現代替代方案。

基本查詢流程

<?php
// 1. 連線資料庫
$hostname = 'localhost';
$username = 'root';
$password = '';
$link = mysql_connect($hostname, $username, $password);

if (!$link) {
  die('連線失敗: ' . mysql_error());
}

// 2. 設定字元編碼 (支援中文)
mysql_query('SET NAMES utf8');

// 3. 選擇資料庫
mysql_select_db('test');

// 4. 執行查詢
$query = "SELECT * FROM friends";
$result = mysql_query($query);

if (!$result) {
  die('查詢失敗: ' . mysql_error());
}

// 5. 逐行處理結果
while ($row = mysql_fetch_array($result)) {
  echo "ID: {$row['id']}
";
  echo "姓名: {$row['name']}
";
  echo "性別: {$row['sex']}
";
  echo "生日: {$row['birthday']}
";
  echo "地址: {$row['address']}

";
}

// 6. 釋放結果集記憶體
mysql_free_result($result);

// 7. 關閉連線 (腳本結束會自動關閉)
mysql_close($link);
?>

常用資料擷取函數比較

函數回傳格式適用場景
mysql_fetch_row()數值索引陣列 [0,1,2...]效能最佳,不需欄位名
mysql_fetch_assoc()關聯陣列 ['id'=>1, 'name'=>'A']程式碼可讀性最好
mysql_fetch_array()雙重陣列 (數值+關聯)預設行為,記憶體較大
mysql_fetch_object()物件 $row->id物件導向風格

條件查詢與單值取得

<?php
// 條件查詢
$query = "SELECT * FROM friends WHERE id = 1";
$result = mysql_query($query);

// 直接取得特定欄位值 (不需 fetch 整列)
$name = mysql_result($result, 0, 'name');
$birthday = mysql_result($result, 0, 'birthday');
$sex = mysql_result($result, 0, 'sex');

echo "姓名: $name
生日: $birthday
性別: $sex
";
?>

取得資料表結構資訊

<?php
$conn = mysql_connect('localhost', 'root', '');
$fields = mysql_list_fields('test', 'friends', $conn);
$cols = mysql_num_fields($fields);

echo "欄位總數: $cols
";
for ($i = 0; $i < $cols; $i++) {
  echo "欄位名: " . mysql_field_name($fields, $i) . "
";
  echo "型態: " . mysql_field_type($fields, $i) . "
";
  echo "長度: " . mysql_field_len($fields, $i) . "

";
}
?>

⚠️ 重要警告:mysql_* 函數已棄用

PHP 5.5.0 起棄用,PHP 7.0.0 起移除。 新專案請勿使用。

現代替代方案:

  • PDO - 物件導向、支援多種資料庫、預處理語句
  • MySQLi - 程序式/物件導向雙模式、支援預處理、效能較好

MySQLi 程式式風格快速對照

<?php
$mysqli = new mysqli('localhost', 'root', '', 'test');
if ($mysqli->connect_errno) die('連線失敗: ' . $mysqli->connect_error);
$mysqli->set_charset('utf8');

$result = $mysqli->query("SELECT * FROM friends");
while ($row = $result->fetch_assoc()) {
  echo "{$row['name']}
";
}
$result->free();
$mysqli->close();
?>
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved