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 相关文章推荐
我的群发邮件程序
Oct 09 PHP
php SQL Injection with MySQL
Feb 27 PHP
使用array mutisort 实现按某字段对数据排序
Jun 18 PHP
PHP实现的MongoDB数据库操作类分享
May 12 PHP
php+mysqli使用面向对象方式更新数据库实例
Jan 29 PHP
php实现将任意进制数转换成10进制的方法
Apr 17 PHP
Yii2中多表关联查询hasOne hasMany的方法
Feb 15 PHP
laravel获取不到session的三种解决办法【推荐】
Sep 16 PHP
php无限级分类实现评论及回复功能
Feb 18 PHP
vmware linux系统安装最新的php7图解
Apr 14 PHP
laravel 修改记住我功能的cookie保存时间的方法
Oct 14 PHP
PHP 对象继承原理与简单用法示例
Apr 21 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中防止SQL注入的最佳解决方法
2013/04/25 PHP
php操作mysqli(示例代码)
2013/10/28 PHP
PHP实例分享判断客户端是否使用代理服务器及其匿名级别
2014/06/04 PHP
PHP中__FILE__、dirname与basename用法实例分析
2014/12/01 PHP
Yii2――使用数据库操作汇总(增删查改、事务)
2016/12/19 PHP
浅说js变量
2011/05/25 Javascript
jQuery常见的选择器及用法介绍
2016/12/20 Javascript
基于Bootstrap框架实现图片切换
2017/03/10 Javascript
Vue.js实现输入框绑定的实例代码
2017/08/24 Javascript
vue 数组和对象不能直接赋值情况和解决方法(推荐)
2017/10/25 Javascript
详解react native页面间传递数据的几种方式
2018/11/07 Javascript
Node.js 中如何收集和解析命令行参数
2021/01/08 Javascript
python通过加号运算符操作列表的方法
2015/07/28 Python
pandas的object对象转时间对象的方法
2018/04/11 Python
python 编码规范整理
2018/05/05 Python
python实现共轭梯度法
2019/07/03 Python
Python实现Singleton模式的方式详解
2019/08/08 Python
解决python3 requests headers参数不能有中文的问题
2019/08/21 Python
学python安装的软件总结
2019/10/12 Python
使用CSS变量实现炫酷惊人的悬浮效果
2019/04/26 HTML / CSS
canvas版人体时钟的实现示例
2021/01/29 HTML / CSS
德国骆驼商店:ActiveFashionWorld
2017/11/18 全球购物
Spartoo荷兰:鞋子、包包和服装
2018/07/12 全球购物
新闻专业个人求职信
2013/12/19 职场文书
肯尼迪就职演说稿
2013/12/31 职场文书
基层干部十八大感言
2014/01/19 职场文书
大学生活自我评价
2014/04/09 职场文书
建筑施工安全责任书
2014/07/24 职场文书
2014年教师节红领巾广播稿
2014/09/10 职场文书
党员四风自我剖析材料
2014/10/07 职场文书
2014年驻村干部工作总结
2014/11/17 职场文书
上下班时间调整通知
2015/04/23 职场文书
2015年端午节活动策划书
2015/05/05 职场文书
中学综治宣传月活动总结
2015/05/07 职场文书
浅谈Laravel中使用Slack进行异常通知
2021/05/29 PHP
vue数据字典取键值项目的字典问题
2022/04/12 Vue.js