在使用 Dreamweaver 開發 PHP 應用時,許多開發者會遇到一個經典問題:SQL 插入語句在命令行執行正常,但通過 Dreamweaver 執行卻只能插入數字字段,中文內容卻無法寫入數據庫。這通常是字符編碼不一致導致的。
新建一個 PHP 文件 saveaddleibie.php,代碼如下:
<?php
include("conn/conn.php");
mysql_query("insert into tb_type(`id`,`typename`) values ('3','機械')",$conn);
?>
連接文件 conn.php 配置正確。按 F12 運行後,數據庫 tb_type 表中 id 列成功插入 3,但 typename 列的「機械」兩個字卻未寫入。然而在 MySQL 命令行直接執行同樣的 SQL 語句,兩列數據均能正常插入。
這是典型的 字符編碼不匹配 問題。Dreamweaver 運行環境、PHP 文件編碼、數據庫連接編碼、數據表字符集可能不一致。常見情況包括:
步驟:
utf8mb4(支持完整 Unicode,含 Emoji)mysql_query("SET NAMES utf8mb4", $conn);AddDefaultCharset utf-8,PHP.ini 設置 default_charset = "UTF-8"<?php
$conn = mysql_connect("localhost", "root", "password") or die("連接失敗");
mysql_select_db("mydb", $conn);
// 關鍵:設置連接字符集
mysql_query("SET NAMES utf8mb4", $conn);
?>
ALTER TABLE tb_type CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
mysqli 或 PDO,並使用預處理語句防止 SQL 注入var_dump(mysql_client_encoding($conn)) 確認當前連接編碼Dreamweaver 中 MySQL 插入中文失敗,90% 是編碼不一致導致。統一全鏈路為 UTF-8(推薦 utf8mb4),並在連接後顯式設置 SET NAMES utf8mb4,即可徹底解決。建議遷移至 mysqli/PDO 並使用參數綁定,提升安全性與兼容性。