在 web 開發中,PHP 和 MySQL 經常被用于構建數據驅動的網站。由于全球范圍內的使用,中文查詢是一個常見的任務。
使用 PHP 查詢 MySQL 中的中文需要涉及到以下幾點:
- MySQL 數據庫字符集設置
- 表定義時字符集設置
- PHP 代碼中指定字符集編碼
- 查詢語句中的中文編碼
- 結果輸出中文字體設置
MySQL 數據庫字符集設置
首先在構建數據庫時需要指定字符集。MySQL 5.5 以后的版本默認使用 utf8mb4 字符集,該字符集包含了 UTF-8 中所有的字符,支持 emoji 等特殊符號。
CREATE DATABASE myDatabase DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_general_ci;
這里指定了默認的字符集 utf8mb4,并且默認排序規則為不區分大小寫的 utf8mb4_general_ci。
表定義時字符集設置
當創建表時,需要指定該表的字符集。這可以通過以下方式實現:
CREATE TABLE myTable ( myColumn VARCHAR(20) ) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
這里將 myTable 的字符集設置為 utf8mb4,列 myColumn 的默認編碼也是 utf8mb4。
PHP 代碼中指定字符集編碼
在 PHP 中,要與 MySQL 正確的進行數據交換,需要在連接到 MySQL 時指定 UTF-8 編碼。
$mysqli = new mysqli($host, $username, $password, $database); $mysqli->set_charset("utf8");
這里通過 set_charset 函數指定連接字符集為 UTF-8。
查詢語句中的中文編碼
在查詢語句中,需要指定中文編碼格式。比如可以使用以下方式:
SELECT * FROM myTable WHERE myColumn LIKE '%中文%' COLLATE utf8mb4_general_ci;
這里對比列 myColumn 的值和字符串 '%中文%' 進行匹配,同時使用 utf8mb4_general_ci 排序規則,確保大小寫不敏感,同時支持特殊字符。
結果輸出中文字體設置
在將查詢結果輸出到瀏覽器之前,需要確保中文使用的字體能夠正確的顯示??梢栽?CSS 樣式表中設置。
body { font-family: 'Microsoft YaHei',Arial,sans-serif; }
這里使用 'Microsoft YaHei' 字體,通常能夠支持中文簡體和繁體,同時兼容英文等字符集。
以上幾種設置可以有效的在 PHP 和 MySQL 中進行中文查詢,通過使用 UTF-8 編碼和通用的排序規則,可以有效的處理不同語言和字符集的數據。