导航:首页 > 编程语言 > 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写入数据库乱码相关的资料

热点内容
linux视频转换 浏览:692
linux与unixshell编程指南 浏览:129
vb6反编译程序错误 浏览:117
服务器弄挂有什么影响 浏览:298
安卓软件为什么运行不了 浏览:521
什么安卓手机是四方的 浏览:475
云服务器厂商租用多少钱 浏览:349
平安车贷解压要多久 浏览:412
乐一php程序员待遇 浏览:162
ZDM命令无法识别 浏览:918
解压小手工A4纸 浏览:979
钢筋加密区是几倍 浏览:668
编译程序代码软件 浏览:806
怎么恢复加密的东西 浏览:987
程序员卖茶 浏览:697
后端程序员英文 浏览:363
滴滴程序员平均月薪 浏览:591
如何使用ftp命令 浏览:788
小书亭下载的文件在哪手机文件夹 浏览:180
交叉编译器编译单个c文件 浏览:518