PHP使用PDO操作数据库的乱码问题解决方法


Posted in PHP onApril 08, 2016

本文实例讲述了PHP使用PDO操作数据库的乱码问题解决方法。分享给大家供大家参考,具体如下:

当使用 PDO 连接操作数据库的时候,有时会出现:保存在数据库中的汉字为乱码。以文件为 UTF-8 格式,其解决方法如下:

(1)实例化的对象直接执行 query() 方法或者 exec() 方法:

<?php
  class DB {
    static public function getDB() {
      try {
        $_opts_values = array(PDO::ATTR_PERSISTENT=>true,PDO::ATTR_ERRMODE=>2);
        $_pdo = new PDO(DB_DSN, DB_NAME, DB_PASS, $_opts_values);
      } catch (PDOException $e) {
        exit('数据库连接错误!错误信息:'.$e->getMessage());
      }
      $_pdo->query("SET NAMES utf8"); // $_pdo->exec('SET NAMES utf8'); //设置数据库编码,两种方法都可以
      return $_pdo;
    }
  }
?>

(2)在实例化 PDO 的第四个参数添加 MYSQL_ATTR_INIT_COMMAND 属性:

<?php
  class DB {
    static public function getDB() {
      try {
        $_opts_values = array(PDO::ATTR_PERSISTENT=>true,PDO::ATTR_ERRMODE=>2,PDO::MYSQL_ATTR_INIT_COMMAND=>'SET NAMES utf8');
        $_pdo = new PDO(DB_DSN, DB_NAME, DB_PASS, $_opts_values);
      } catch (PDOException $e) {
        exit('数据库连接错误!错误信息:'.$e->getMessage());
      }
      return $_pdo;
    }
  }
?>

注:以上方法,都经过测试。

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP面向接口编程 耦合设计模式 简单范例
Mar 23 PHP
PHP新手入门学习方法
May 08 PHP
php简单对象与数组的转换函数代码(php多层数组和对象的转换)
May 18 PHP
ThinkPHP学习笔记(一)ThinkPHP部署
Jun 22 PHP
使用ThinkPHP+Uploadify实现图片上传功能
Jun 26 PHP
php实现mysql事务处理的方法
Dec 25 PHP
判断、添加和删除WordPress置顶文章的相关PHP函数小结
Dec 10 PHP
Linux系统中设置多版本PHP共存配合Nginx服务器使用
Dec 21 PHP
php发送http请求的常用方法分析
Nov 08 PHP
创建无限极分类树型结构的简单方法
Jun 20 PHP
PHP字典树(Trie树)定义与实现方法示例
Oct 09 PHP
Laravel使用模型实现like模糊查询的例子
Oct 24 PHP
PHP中__autoload和Smarty冲突的简单解决方法
Apr 08 #PHP
初识ThinkPHP控制器
Apr 07 #PHP
PHP中PDO的事务处理分析
Apr 07 #PHP
PHP+Ajax实现无刷新分页实例详解(附demo源码下载)
Apr 07 #PHP
人脸识别测颜值、测脸龄、测相似度微信接口
Apr 07 #PHP
PHP的PDO常用类库实例分析
Apr 07 #PHP
PHP安全下载文件的方法
Apr 07 #PHP
You might like
Zend 输出产生XML解析错误
2009/03/03 PHP
php var_export与var_dump 输出的不同
2013/08/09 PHP
php获得客户端浏览器名称及版本的方法(基于ECShop函数)
2015/12/23 PHP
PHP实现限制IP访问的方法
2017/04/20 PHP
PHP删除二维数组中相同元素及数组重复值的方法示例
2017/05/05 PHP
firefox 和 ie 事件处理的细节,研究,再研究 书写同时兼容ie和ff的事件处理代码
2007/04/12 Javascript
javascript 极速 隐藏/显示万行表格列只需 60毫秒
2009/03/28 Javascript
javascript 异常处理使用总结
2009/06/21 Javascript
JavaScript 利用Cookie记录用户登录信息
2009/12/08 Javascript
javascript之通用简单的table选项卡实现(二)
2010/05/09 Javascript
很好用的js日历算法详细代码
2013/03/07 Javascript
jquery easyui使用心得
2014/07/07 Javascript
JavaScript实现数组随机排序的方法
2015/06/26 Javascript
总结十个Angular.js由浅入深的面试问题
2016/08/26 Javascript
js中的事件委托或是事件代理使用详解
2017/06/23 Javascript
官方推荐react-navigation的具体使用详解
2018/05/08 Javascript
使用JavaScript实现node.js中的path.join方法
2018/08/12 Javascript
详解用JS添加和删除class类名
2019/03/25 Javascript
[07:06]2018DOTA2国际邀请赛寻真——卫冕冠军Team Liquid
2018/08/10 DOTA
python+selenium实现163邮箱自动登陆的方法
2017/12/31 Python
Python+request+unittest实现接口测试框架集成实例
2018/03/16 Python
python如何读写json数据
2018/03/21 Python
Window系统下Python如何安装OpenCV库
2020/03/05 Python
Python requests模块安装及使用教程图解
2020/06/30 Python
django filter过滤器实现显示某个类型指定字段不同值方式
2020/07/16 Python
饿了么订餐官网:外卖、网上订餐
2019/06/28 全球购物
应用电子技术专业个人求职信
2013/09/21 职场文书
小车司机岗位职责
2013/11/25 职场文书
最新茶叶店创业计划书
2014/01/14 职场文书
集中采购方案
2014/06/10 职场文书
工作失职检讨书(精华篇)
2014/10/15 职场文书
商铺门面租房协议书
2014/10/21 职场文书
电信营业员岗位职责
2015/04/14 职场文书
Python代码风格与编程习惯重要吗?
2021/06/03 Python
python 判断文件或文件夹是否存在
2022/03/18 Python
Python使用pandas导入csv文件内容的示例代码
2022/12/24 Python