ASP源码.NET源码PHP源码JSP源码JAVA源码DELPHI源码PB源码VC源码VB源码Android源码
当前位置:首页 >> 数据库 >> MySql >> PHP不同版本PDO设置字符集

PHP不同版本PDO设置字符集

来源:网络整理     时间:2015-05-19     关键词:

本篇文章主要介绍了"PHP不同版本PDO设置字符集",主要涉及到方面的内容,对于MySql感兴趣的同学可以参考一下: 最近用PDO操作MySQL,自己在Mac上测试的好好的。SQL文件、代码一起上到服务器上,写入数据到MySQL中,中文全部乱码。首先,查看了MySQL服务端的编...

最近用PDO操作MySQL,自己在Mac上测试的好好的。SQL文件、代码一起上到服务器上,写入数据到MySQL中,中文全部乱码。

首先,查看了MySQL服务端的编码,全部是UTF-8,在看数据库、表、相关字段,全都是utf8_general_ci。

然后,看代码,也设置了字符集:

$dns = 'mysql:dbname=sausagedb;host=127.0.0.1;charset=utf8';

$user = 'root';

$password = '111111';

$dbh = new PDO($dns, $user, $password);

可是,插入的数据的中文部分,仍然乱码。之后,用PHP直接连接MySQL,加了一句:
mysql_query("SET NAMES 'utf8'");

插入的数据中文部分,已经显示正常了。说明服务端没有问题,有问题的还是代码。

实在找不到原因,到网上搜了一下。原来PDO在PHP 5.3.6之后的版本,如上面设置的是有效的。低于5.3.6版本的,需要用下面的方法设置:

$dbh = new PDO($dns, $user, $password);
$dbh->exec("set names utf8");

再运行插入,中文显示正常了!

以上就介绍了PHP不同版本PDO设置字符集,包括了方面的内容,希望对MySql有兴趣的朋友有所帮助。

本文网址链接:http://www.codes51.com/article/detail_136033.html

相关图片

相关文章