導航:首頁 > 編程語言 > 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寫入資料庫亂碼相關的資料

熱點內容
android多個布局文件 瀏覽:627
奔跑程序員 瀏覽:468
伺服器如何搭建類似github 瀏覽:292
明日之後安卓太卡怎麼辦 瀏覽:502
如何使用命令方塊找到村莊 瀏覽:766
泛函壓縮映像原理 瀏覽:521
win10清除文件夾瀏覽記錄 瀏覽:964
如何查看伺服器域中所有服務 瀏覽:384
學mastercam91編程要多久 瀏覽:999
如何查伺服器地址和埠 瀏覽:911
教學雲平台app怎麼下載 瀏覽:389
單片機510教學視頻 瀏覽:624
陝西信合app怎麼查看自己的存款 瀏覽:663
風冷冰箱有壓縮機 瀏覽:274
android實現wifi連接wifi 瀏覽:669
飛豬app怎麼幫別人值機 瀏覽:924
筆記本開我的世界伺服器地址 瀏覽:546
怎樣隱藏bat命令 瀏覽:127
android開發創意 瀏覽:138
京劇貓為什麼進不去伺服器 瀏覽:784