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

热点内容
加密芯片的计算方法 浏览:187
手机存储为什么找不到微信文件夹 浏览:695
msf端口迁移命令 浏览:880
工商app积分怎么查询 浏览:143
铁路app怎么买火车票 浏览:309
移魅族除的app怎么添加 浏览:240
兔笼子大号加密 浏览:171
单片机程序烧录操作成功 浏览:878
指标高抛低吸点位源码 浏览:205
25匹压缩机铜管 浏览:570
单片机单灯左移05 浏览:150
买服务器练手什么配置 浏览:783
服务器被毁该怎么办 浏览:939
python私有库 浏览:514
Python有中文吗 浏览:736
麦块的服务器为什么都进不去 浏览:474
新买的服务器如何打开 浏览:35
安卓软件游戏怎么开发 浏览:319
用扑克摆爱心解压神器怎么摆 浏览:70
松下制冷压缩机 浏览:275