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 相关文章推荐
COM in PHP (winows only)
Oct 09 PHP
PHP连接MySQL查询结果中文显示乱码解决方法
Oct 25 PHP
PHP中鲜为人知的10个函数
Feb 28 PHP
PHP 面向对象程序设计(oop)学习笔记 (二) - 静态变量的属性和方法及延迟绑定
Jun 12 PHP
Laravel中使用阿里云OSS Composer包分享
Feb 10 PHP
php使用MySQL保存session会话的方法
Jun 18 PHP
PHP入门教程之表单与验证实例详解
Sep 11 PHP
PHP实现的激活用户注册验证邮箱功能示例
Jun 06 PHP
phpcms实现验证码替换及phpcms实现全站搜索功能教程详解
Dec 13 PHP
PHP通过get方法获得form表单数据方法总结
Sep 12 PHP
PHP压缩图片功能的介绍
Mar 21 PHP
解决Laravel5.5下的toArray问题
Oct 15 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
选择PHP作为网站开发语言的原因分享
2012/01/03 PHP
基于PHP异步执行的常用方式详解
2013/06/03 PHP
PHP代码审核的详细介绍
2013/06/13 PHP
php后门URL的防范
2013/11/12 PHP
php curl 上传文件代码实例
2015/04/27 PHP
jquery修改属性值实例代码(设置属性值)
2014/01/06 Javascript
jquery的live使用注意事项
2014/02/18 Javascript
JavaScript结合AJAX_stream实现流式显示
2015/01/08 Javascript
jquery+ajax实现直接提交表单实例分析
2016/06/17 Javascript
Angular2学习笔记——详解NgModule模块
2016/12/02 Javascript
手机端转换rem适应
2017/04/01 Javascript
对于input 框限定输入值为浮点型的js代码
2017/09/25 Javascript
基于Vuex无法观察到值变化的解决方法
2018/03/01 Javascript
浅析JS中什么是自定义react数据验证组件
2018/10/19 Javascript
vue接入腾讯防水墙代码
2019/05/07 Javascript
vue+Element中table表格实现可编辑(select下拉框)
2020/05/21 Javascript
利用PHP实现递归删除链表元素的方法示例
2020/10/23 Javascript
用Python解析XML的几种常见方法的介绍
2015/04/09 Python
Python用模块pytz来转换时区
2016/08/19 Python
python中requests小技巧
2017/05/10 Python
Python实现k-means算法
2018/02/23 Python
详解Django的CSRF认证实现
2018/10/09 Python
Django用户认证系统 组与权限解析
2019/08/02 Python
浅谈pandas dataframe对除数是零的处理
2020/07/20 Python
世界上最大的街头服饰网站:Karmaloop
2017/02/04 全球购物
Forever 21美国官网:美国标志性快时尚品牌
2017/02/20 全球购物
马来西亚演唱会订票网站:StubHub马来西亚
2018/10/18 全球购物
英国健身仓库:Bodybuilding Warehouse
2019/03/06 全球购物
通往英国高街的商店橱窗:Down Your High Street
2020/07/19 全球购物
一封普通求职者的求职信
2013/11/20 职场文书
人力资源本科毕业生求职信
2014/06/04 职场文书
《中国梦我的梦》中学生演讲稿
2014/08/20 职场文书
2015年度质量工作总结报告
2015/04/27 职场文书
清明祭英烈活动总结
2015/05/11 职场文书
详解Laravel服务容器的优势
2021/05/29 PHP
Python中如何处理常见报错
2022/01/18 Python