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

PHP 使用 mysqli 連接 MySQL 資料庫完整教學與範例

     編輯:MySQL 綜合教學

PHP 使用 mysqli 連接 MySQL 資料庫完整教學與範例

在 PHP 開發中,mysqli 擴展是連接 MySQL 資料庫的主流方式之一。本文將透過完整的程式碼範例,示範如何建立連線、執行查詢、處理結果集,並正確關閉連線。

基本連線語法

mysqli_connect() 函式接受四個主要參數:主機位址、使用者名稱、密碼與預設資料庫名稱。以下為標準連線範例:

<?php
$link = mysqli_connect(
    'localhost',   // MySQL 主機位址
    'jian',        // 登入使用者名稱
    '123456',      // 登入密碼
    'jian'         // 預設資料庫名稱
);

if (!$link) {
    printf("無法連線到 MySQL 伺服器. 錯誤代碼: %s ", mysqli_connect_error());
    exit;
} else {
    echo '資料庫連線成功!';
}

// 關閉連線
mysqli_close($link);
?>

說明: 此處的 jian 同時是資料庫名稱與帳號名稱。實務上,專案通常只提供特定資料庫的管理帳號、密碼與主機位址,而非 root 權限。

執行查詢與處理結果

連線成功後,可使用 mysqli_query() 執行 SQL 語句,並透過 mysqli_fetch_assoc() 逐行取得關聯式陣列結果。

<?php
$link = mysqli_connect('localhost', 'jian', '123456', 'jian');

if (!$link) {
    printf("連線失敗: %s", mysqli_connect_error());
    exit;
}
echo '資料庫連線成功!<br/>';

$sql = 'SELECT id, class, scores FROM jian_scores WHERE scores > 60';
if ($result = mysqli_query($link, $sql)) {
    echo 'ID 班級 分數<br/>';
    while ($row = mysqli_fetch_assoc($result)) {
        echo $row['id'] . '&nbsp;' . $row['class'] . '&nbsp;' . $row['scores'] . '<br/>';
    }
    // 釋放結果集記憶體
    mysqli_free_result($result);
}

mysqli_close($link);
?>

常見問題排查

文章作者提到修改 my.ini 編碼為 UTF-8 後 MySQL 無法啟動,改回 GBK 才正常。這通常是因為舊版資料檔案編碼不一致,或是 character-set-server 設定與實際資料編碼衝突。建議:

  • 確認資料目錄下現有資料檔案編碼
  • 若為全新安裝,直接設定 character-set-server=utf8mb4
  • 避免在現有資料庫上直接變更編碼設定,應透過 ALTER DATABASE 與 ALTER TABLE 轉換

執行結果示意

程式執行後將顯示分數大於 60 的學生資料:

查詢結果畫面

最佳實務提醒

  • 生產環境請使用預處理語句(Prepared Statements)防止 SQL 注入
  • 錯誤訊息不要直接輸出給前端,應記錄至日誌
  • 連線資訊建議存放於設定檔,不寫死在程式碼中
  • 長時間運行的腳本應妥善管理連線生命週期
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved