導航:首頁 > 編程語言 > php寫入資料庫亂碼

php寫入資料庫亂碼

發布時間:2023-02-20 00:24:52

php使用utf8插入中文數據到MySQL中文顯示會亂碼怎麼辦

資料庫使用utf8編碼,需要在操作的過程中統一全部編碼。

1.資料庫默認編碼

CREATEDATABASE`test`DEFAULTCHARACTERSET'utf8';

2.表默認編碼

CREATETABLE`tablea`(
`id`INTNOTNULLAUTO_INCREMENT,
`title`VARCHAR(100)NULL,
)ENGINE=InnoDBDEFAULTCHARSET=utf8;

3.欄位默認編碼

默認情況下,欄位的編碼同表的編碼,但是如果修改了表的編碼,欄位編碼不會同步修改,需要手動修改

這里修改編碼測試我將utf8 改為 gb2312 ,僅用於觀察修改後的情況(實際使用中可能是將gbk修改為utf8)

ALTERTABLE`test`.`tablea`CHARACTERSET=gb2312;

--修改表編碼後,查看建表語句
showcreatetable`tablea`;

--可以看到輸出的建表語句中欄位單獨設置了編碼
CREATETABLE`tablea`(
`id`INTNOTNULLAUTO_INCREMENT,
`title`VARCHAR(100)CHARACTERSETutf8NULL,
)ENGINE=InnoDBDEFAULTCHARSET=gb2312;

--需要手動修改欄位編碼
ALTERTABLE`tablea`
CHANGECOLUMN`title``title`VARCHAR(100)CHARACTERSET'gb2312'NULLDEFAULTNULL;

4.當前資料庫連接的編碼

連接數時設置編碼

//PDO連接
$db=newPDO('mysql:host=myhost;dbname=test','login','password',
array(PDO::MYSQL_ATTR_INIT_COMMAND=>'SETNAMES'UTF8'')
);

//mysqli連接
$link=mysqli_connect("127.0.0.1","my_user","my_password","test");
mysqli_query($link,"SETNAMES'utf8';");

通過以上幾步操作,基本可以保證資料庫使用過程中不會出現亂碼

⑵ 請教大俠,php存入mysql資料庫時漢字亂碼怎麼解決,文檔和資料庫都是utf8格式。

亂碼有幾個方面
首先確保資料庫的編碼是否正確
其次確保連接資料庫的代碼是否指定了正確的編碼。
另外就是html頁面的編碼是否一致,麻煩把問題補充清楚方便排查問題。

⑶ php保存數據在MySql中怎麼都是亂碼

1、php/html文件編碼與資料庫編碼不統一
2、連接資料庫時沒有設置連接編碼,「set names 。。。」
3、資料庫編碼設置有問題
4、資料庫欄位編碼設置有問題
5、php程序裡面沒有對相關的欄位進行轉碼

閱讀全文

與php寫入資料庫亂碼相關的資料

熱點內容
解壓小手工A4紙 瀏覽:974
鋼筋加密區是幾倍 瀏覽:663
編譯程序代碼軟體 瀏覽:799
怎麼恢復加密的東西 瀏覽:980
程序員賣茶 瀏覽:696
後端程序員英文 瀏覽:359
滴滴程序員平均月薪 瀏覽:588
如何使用ftp命令 瀏覽:786
小書亭下載的文件在哪手機文件夾 瀏覽:175
交叉編譯器編譯單個c文件 瀏覽:512
代理伺服器地址列表吧 瀏覽:929
java列出所有文件 瀏覽:867
壓縮包看圖軟體 瀏覽:189
sqlite在android中的應用 瀏覽:660
一本通pdf 瀏覽:914
2021免費的編程軟體 瀏覽:125
項目編譯後瀏覽器不對應刷新 瀏覽:566
三星升級android60 瀏覽:296
粘土的壓縮模量 瀏覽:119
美國程序員生活 瀏覽:222