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 07 PHP
非常不错的MySQL优化的8条经验
Mar 24 PHP
PHP远程连接MYSQL数据库非常慢的解决方法
Jul 05 PHP
PHP 数组入门教程小结
May 20 PHP
php 魔术方法使用说明
Oct 20 PHP
PHP 存储文本换行实现方法
Jan 05 PHP
解析PHP中ob_start()函数的用法
Jun 24 PHP
php实现可以设置中奖概率的抽奖程序代码分享
Jan 19 PHP
ThinkPHP之M方法实例详解
Jun 20 PHP
编写PHP脚本过滤用户上传的图片
Jul 03 PHP
mac系统下安装多个php并自由切换的方法详解
Apr 21 PHP
PHP给源代码加密的几种方法汇总(推荐)
Feb 06 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 创建文件(文件夹)以及目录操作代码
2010/03/04 PHP
详解Grunt插件之LiveReload实现页面自动刷新(两种方案)
2015/07/31 PHP
PHP命令行执行整合pathinfo模拟定时任务实例
2016/08/12 PHP
实例:尽可能写友好的Javascript代码
2006/10/09 Javascript
基于Jquery实现表格动态分页实现代码
2011/06/21 Javascript
jquery ui对话框实例代码
2013/05/10 Javascript
alert中断settimeout计时功能
2013/07/26 Javascript
JSON传递bool类型数据的处理方式介绍
2013/09/18 Javascript
jQuery控制TR显示隐藏的几种方法
2014/06/18 Javascript
关于javascript的一些知识以及循环详解
2016/09/12 Javascript
js实现带三角符的手风琴效果
2017/03/01 Javascript
vue.js指令v-model使用方法
2017/03/20 Javascript
vue+vuex+axios实现登录、注册页权限拦截
2018/03/09 Javascript
Node.js使用Angular简单示例
2018/05/11 Javascript
jQuery实现炫丽的3d旋转星空效果
2018/07/04 jQuery
nodejs实现范围请求的实现代码
2018/10/12 NodeJs
Angular8 Http拦截器简单使用教程
2019/08/20 Javascript
Vue中import from的来源及省略后缀与加载文件夹问题
2020/02/09 Javascript
echarts 使用formatter 修改鼠标悬浮事件信息操作
2020/07/20 Javascript
python2和python3的输入和输出区别介绍
2018/11/20 Python
用什么库写 Python 命令行程序(示例代码详解)
2020/02/20 Python
Python猴子补丁Monkey Patch用法实例解析
2020/03/23 Python
PyCharm中如何直接使用Anaconda已安装的库
2020/05/28 Python
基于Python 的语音重采样函数解析
2020/07/06 Python
css3.0 图形构成实例练习二
2013/03/19 HTML / CSS
加拿大女包品牌:Matt & Nat
2017/05/12 全球购物
顶碗少年教学反思
2014/02/21 职场文书
中华魂演讲稿
2014/05/13 职场文书
经理任命书模板
2014/06/06 职场文书
个人买房协议书范本
2014/10/06 职场文书
成绩单家长意见
2015/06/03 职场文书
酒桌上的祝酒词
2015/08/12 职场文书
一劳永逸彻底解决pip install慢的办法
2021/05/24 Python
springboot 启动如何排除某些bean的注入
2021/08/02 Java/Android
win10电脑右下角输入法图标不见了?Win10右下角不显示输入法的解决方法
2022/07/23 数码科技
python+pyhyper实现识别图片中的车牌号思路详解
2022/12/24 Python