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

解決 PHP 5 連接 MySQL 時出現亂碼的問題

     編輯:PHP 相關知識

問題背景

在使用 PHP 5 開發時,若 MySQL 查詢結果全部顯示為「??????」,通常是因為字符集設定不正確所致。即使在安裝 MySQL 5 時已將預設字符集設為 gb2312,仍可能出現亂碼。

解決方法

關鍵在於建立資料庫連線後,立即執行一條與所設字符集相符的 SET NAMES 語句。例如若資料庫使用 gb2312,則執行 SET NAMES 'gb2312'。

實作範例

以下是一個封裝好的連線函數,演示如何在連線成功後自動設定字符集:

function sql_connect() {
    global $MySQL_HOST, $MySQL_USER, $MySQL_PASSWORD, $MySQL_DATABASE;

    $connection = @mysql_connect($MySQL_HOST, $MySQL_USER, $MySQL_PASSWORD)
        or startUpError('<p>Could not connect to MySQL database.</p>', 'Connect Error');

    if (!mysql_select_db($MySQL_DATABASE)) {
        include 'install.php';
        doInstall();
        mysql_select_db($MySQL_DATABASE)
            or startUpError('<p>Could not select database: ' . mysql_error() . '</p>', 'Connect Error');
    }

    // 關鍵步驟:設定連線字符集
    sql_query('SET NAMES "gb2312"'); // sql_query 為自訂的查詢執行函數

    return $connection;
}

透過這樣的處理,即可確保 PHP 與 MySQL 之間的資料傳輸使用一致的編碼,從而徹底解決亂碼問題。

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