php無法將中文資料寫入資料庫表的解決方法:1、將mysql所用字元集修改為utf8;2、將php檔案編碼所用字元集改為utf-8;3、將前台網頁所用字元編碼修改為utf-8。
本文操作環境:windows10系統、php 7&&mysql 5.0、thinkpad t480電腦。
在學習PHP的過程中我們可能會遇到無法將中文資料插入資料表的情況,以及前台網頁無法正確顯示從資料庫取得的中文資料的情況。遇到這種問題我們需要將mysql所用字元集修改為utf8,PHP檔案編碼所用字元集改為utf-8,前台網頁所用字元編碼改為utf-8,這樣就可以解決問題了。
具體步驟如下:
1. 執行MySQL安裝目錄下的MySQLInstanceConfig.exe,設定預設編碼為utf8;
記得選擇「Best Support For Multilingualism”,同時在下面的下拉清單中選擇「utf8」
配置完成後,檢查MySQL安裝路徑下的my.ini檔案中「default-character-set」的設置,此時應該是已經設定為utf8了,如果不是,則設定為default-character-set=utf8
2.1 在建立資料庫時指定utf8編碼:
CREATE DATABASE database_name CHARACTER SET “utf8” COLLATE “utf8_general_ci”;
2.2 在建立資料表時指定utf8編碼:
CREATE TABLE table_name ( Column_name datatype, ...... )ENGINE=InnoDB DEFAULT CHARSET=utf8;
3. 將檔案編碼設定為utf-8;
如果用的是PhpStorm,則其預設的檔案編碼就是utf-8,不用更改
4.設定頁面所用字元集為utf-8:
5.在對資料進行操作之前應該先進行mysql_query('set names utf8'); 操作,然後再執行對資料的查詢,更新,插入等 。
6.最後將客戶端來源資料使用的字元集,查詢結果字元集設定為gbk,:
SET character_set_client =gbk; //直接從MySQL指令列用戶端插入中文資料時,儲存資料不會亂碼
SET character_set_results =gbk; //從MySQL命令列用戶端檢視回傳的中文資料不會亂碼
PS:上述內容是針對於MySQL Server 5.0的,在MySQL Server 5.6 中其預設的所有所使用的字元編碼都是utf8
推薦學習:php訓練
以上是php無法將中文資料寫入資料庫表怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!