$serverName = 'db4free.net:3306';
$dbName = 'dbname';
$dbUser = 'username';
$dbPass = 'password';
$link = mysql_connect($serverName, $dbUser, $dbPass);
mysql_select_db($dbName, $link);
注意:mysql_* 函數已棄用,新專案請使用 mysqli 或 PDO。
MySQL 4.1+ 引入字符集機制,PHP 預設連線字符集為 latin1,若資料庫/表/欄為 gb2312 或 utf8,讀寫必須顯式宣告連線字符集。
mysql_query("SET NAMES 'gb2312'", $link); // 或 'utf8'
// 等價於:
// SET character_set_client = gb2312;
// SET character_set_results = gb2312;
// SET character_set_connection = gb2312;
$link = mysql_connect('localhost', 'root', 'password');
mysql_query("SET NAMES 'gb2312'", $link);
mysql_select_db('test', $link);
| 層級 | 配置項 | 建議值 |
|---|---|---|
| 資料庫 | CREATE DATABASE ... CHARSET=gb2312 | gb2312 / utf8mb4 |
| 資料表 | CREATE TABLE ... CHARSET=gb2312 | 同上 |
| 欄位 | col VARCHAR(50) CHARSET gb2312 | 同上 |
| 連線 | SET NAMES 'gb2312' | 同上 |
| PHP 腳本 | header('Content-Type: text/html; charset=gb2312'); | 同上 |
| HTML 頁面 | <meta charset="gb2312"> | 同上 |
// mysqli
$mysqli = new mysqli($host, $user, $pass, $db, $port);
$mysqli->set_charset('gb2312');
// PDO
$pdo = new PDO("mysql:host=$host;port=$port;dbname=$db;charset=gb2312", $user, $pass);
SET NAMES 'charset' 是解決 PHP-MySQL 中文亂碼的「一鍵鍵」,但必須配合資料庫/表/欄/頁面編碼全鏈路一致。新專案強烈建議統一 **UTF-8 (utf8mb4)**,避免 GB2312 無法儲存 Emoji/生僻字。