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

PHP + MySQL 數據庫查詢操作完整教程

     編輯:PHP 綜合知識

核心步驟詳解

  1. 建立連接: mysqli_connect() 或 new mysqli(),返回連接對象/標識符。
  2. 選擇數據庫: mysqli_select_db() 或構造函數指定。
  3. 構造並執行 SQL: mysqli_query() 執行 SELECT,返回結果集對象。
  4. 處理結果集: mysqli_fetch_assoc() 逐行獲取關聯數組,配合循環遍歷。
  5. 釋放資源: mysqli_free_result() 釋放內存,mysqli_close() 關閉連接。

現代 mysqli 面向對象完整示例

<?php
$host = 'localhost'; $user = 'root'; $pass = 'password'; $db = 'phpdev';

$mysqli = new mysqli($host, $user, $pass, $db);
if ($mysqli->connect_errno) { die("連接失敗: " . $mysqli->connect_error); }
$mysqli->set_charset('utf8mb4');

$query = "SELECT id, country, animal, cname FROM symbols";
$result = $mysqli->query($query);

if ($result === false) {
    die("查詢錯誤: " . $mysqli->error);
}

if ($result->num_rows > 0) {
    echo "<table border='1' cellpadding='10'>";
    echo "<tr><th>ID</th><th>國家</th><th>英文名</th><th>中文名</th></tr>";
    while ($row = $result->fetch_assoc()) {
        echo "<tr>";
        echo "<td>" . htmlspecialchars($row['id']) . "</td>";
        echo "<td>" . htmlspecialchars($row['country']) . "</td>";
        echo "<td>" . htmlspecialchars($row['animal']) . "</td>";
        echo "<td>" . htmlspecialchars($row['cname']) . "</td>";
        echo "</tr>";
    }
    echo "</table>";
} else {
    echo "未找到記錄。";
}

$result->free();
$mysqli->close();

關鍵函數對照表

舊 mysql_* (已移除)mysqli 面向對象mysqli 過程式
mysql_connect()$mysqli = new mysqli()mysqli_connect()
mysql_select_db()$mysqli->select_db()mysqli_select_db()
mysql_query()$mysqli->query()mysqli_query()
mysql_fetch_assoc()$result->fetch_assoc()mysqli_fetch_assoc()
mysql_num_rows()$result->num_rowsmysqli_num_rows()
mysql_free_result()$result->free()mysqli_free_result()
mysql_close()$mysqli->close()mysqli_close()
mysql_error()$mysqli->errormysqli_error()
mysql_insert_id()$mysqli->insert_idmysqli_insert_id()

進階查詢技巧

  • 預處理查詢: 涉及變量時必用 prepare() + bind_param() + execute() + get_result()。
  • 分頁查詢: LIMIT offset, count 配合 SQL_CALC_FOUND_ROWS 或單獨 COUNT(*) 獲取總數。
  • 事務控制: $mysqli->begin_transaction(), commit(), rollback()。
  • 異步查詢: mysqli::poll() 實現並發查詢(罕用)。

PDO 替代方案(推薦新項目)

<?php
$pdo = new PDO("mysql:host=$host;dbname=$db;charset=utf8mb4", $user, $pass, [
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
]);
$stmt = $pdo->query("SELECT id, country, animal FROM symbols");
foreach ($stmt as $row) {
    echo htmlspecialchars($row['country']) . "<br>";
}
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved