+ -
当前位置:首页 → 问答吧 → php插入数据到mysql乱码

php插入数据到mysql乱码

时间:2011-10-18

来源:互联网

大家好!最近在做一些网站,但是遇到一个麻烦的问题,头很痛,想请大家帮我解决,在此先谢谢大家!

在利用php中的mysql_query()插入一些数据到mysql,遇到以下问题:

可以插入数据到mysql数据库,但是用phpmyadmin查看内容却是乱码的,读取数据出来也不会乱码。但是这样对直接在phpmyadmin中查看数据照成影响,还有就是插入的数据和自己定义的字段长度有冲突,例如我的一个表中name字段设置为varchar(10),在我还没有插入10个字符时(大概5~6)个就插入不进去,但是插入2~3个字符确是可以的。我怀疑是字符集的问题,也就是说我插入5~6个字符,他乱码之后插入就已经超过10字符了。只有当你的字符为数字和英文字母时才不会出现这样的问题,只有汉字会乱码。

但是直接在phpmyadmin中输入mysql插入语句不会出现乱码,长度是多少就会是多少,不会出现上面的情况,问题是读取这些没有乱码的数据时却是乱码的。本来我以后是我的php代码错了,结果拿自己的代码输出sql语句在phpmyadmin中插入却是可以的。所以一切都在字符集的问题上。

现在想让大家看完之后给我一点建议,我就是想不要出现乱码,插入读取都不要,全完的正常,因为字符集浪费我太多时间和精力了,谢谢大家帮助我解决这个让我头疼的问题。

给我一些未来设计网站时的建议,让我避开这个字符集的问题,在字符集方面给我多多的注意细节,谢谢各位!不胜感激。。。

作者: huang644986   发布时间: 2011-10-18

应该是数据库定义的字符编码和PHP文件编码不一致造成的,你改成一致应该就OK了。

作者: ming0753   发布时间: 2011-10-18

你把PHP页的编码,数据库定义的编码,数据表字段属性编码都定义成统一的编码应该就没有问题了

作者: baoxiaohua   发布时间: 2011-10-18

执行操作前加上:mysql_query("set names as '你数据库的编码'");

作者: jordan102   发布时间: 2011-10-18

引用 3 楼 jordan102 的回复:
执行操作前加上:mysql_query("set names as '你数据库的编码'");


就是他说的这个,我也遇到过

作者: china_cctv   发布时间: 2011-10-19