首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Dreamweaver 連接 MySQL 插入中文數據失敗的解決方案

     編輯:程式設計綜合問答

在使用 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 文件編碼、數據庫連接編碼、數據表字符集可能不一致。常見情況包括:

  • PHP 文件保存為 UTF-8,但數據庫連接未設置字符集
  • 數據表字符集為 latin1 或 gbk,與 PHP 文件編碼衝突
  • Apache/MySQL 默認字符集配置不同

解決方案

1. 統一編碼為 UTF-8(推薦)

步驟:

  1. 確保 PHP 文件以 UTF-8 無 BOM 格式保存(在 Dreamweaver 中:修改 > 頁面屬性 > 標題/編碼 > 編碼選 UTF-8,勾選「包含 Unicode 簽名 (BOM)」取消)
  2. 數據庫、數據表、字段字符集均設置為 utf8mb4(支持完整 Unicode,含 Emoji)
  3. 連接數據庫後立即執行:mysql_query("SET NAMES utf8mb4", $conn);
  4. Apache 配置 AddDefaultCharset utf-8,PHP.ini 設置 default_charset = "UTF-8"

2. 修正連接文件 conn.php

<?php
$conn = mysql_connect("localhost", "root", "password") or die("連接失敗");
mysql_select_db("mydb", $conn);
// 關鍵:設置連接字符集
mysql_query("SET NAMES utf8mb4", $conn);
?>

3. 檢查數據表結構

ALTER TABLE tb_type CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

避坑指南

  • 棄用 mysql_* 函數:PHP 7.0+ 已移除,請改用 mysqli 或 PDO,並使用預處理語句防止 SQL 注入
  • 調試技巧:在 SQL 執行前輸出 var_dump(mysql_client_encoding($conn)) 確認當前連接編碼
  • 編碼鏈路:編輯器文件編碼 → PHP 內部編碼 → 數據庫連接編碼 → 數據表存儲編碼,四者必須一致

總結

Dreamweaver 中 MySQL 插入中文失敗,90% 是編碼不一致導致。統一全鏈路為 UTF-8(推薦 utf8mb4),並在連接後顯式設置 SET NAMES utf8mb4,即可徹底解決。建議遷移至 mysqli/PDO 並使用參數綁定,提升安全性與兼容性。

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