php向mysql数据库添加数据时出现中文乱码的解决方法

时间:2016-11-04
在php mysql数据库编程中,当向mysql数据库插入数据时,有时会出现中文乱码,本文章向大家介绍出现mysql乱码的原因及解决方法,需要的朋友可以参考一下。

我们在使用数据库(MySQL)的时候最怕的就是数据库中的中文出现乱码,而且百度中除了更改配置文件中的字符集好像也没有其他建设性的方法,更重要的是这些方法我都一一尝试过了,好像并不能解决问题。那么我就为大家提供一个比较实用而且我一直在用的办法。

第一:页面编码问题

我们在WEB页面中,需要全部保持是UTF-8编码。

第二:要设置数据表的字符集编码为utf8

如:

CREATE TABLE `tablename4` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`varchar1` varchar(255) DEFAULT NULL,
`varbinary1` varbinary(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8

这里的DEFAULT CHARSET=utf8就是设置数据表字符集的编码。

第三:数据库链接编码设置

仅仅设置页面编码和数据库的字符集编码还不能达到目的,在代码中连接数据库后也要采取相应的措施,否则中文还是以乱码的形式保存在数据库中。

例如php,我们在连接数据库以后执行如下操作即可避免插入乱码的问题: 

mysql_query("set names 'utf8'");
/* http://www.manongjc.com/article/1585.html */

在编程过程中执行上述三部分操作即可避免中文乱码的问题,一定注意这三部分操作缺一不可。