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入门速成(2)
Oct 09 PHP
如何在WIN2K下安装PHP4.04
Oct 09 PHP
可定制的PHP缩略图生成程式(需要GD库支持)
Mar 06 PHP
php 页面执行时间计算代码
Dec 04 PHP
php模板中出现空行解决方法
Mar 08 PHP
Codeigniter实现多文件上传并创建多个缩略图
Jun 12 PHP
php+memcache实现的网站在线人数统计代码
Jul 04 PHP
ThinkPHP打开验证码页面显示乱码的解决方法
Dec 18 PHP
php格式化金额函数分享
Feb 02 PHP
php遍历目录方法小结
Mar 10 PHP
关于PHP开发的9条建议
Jul 27 PHP
安装PHP扩展时解压官方 tgz 文件后没有configure文件无法进行配置编译的问题
Aug 26 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(2)
2006/10/09 PHP
解析mysql left( right ) join使用on与where筛选的差异
2013/06/18 PHP
form自动提交实例讲解
2017/07/10 PHP
javascript 获取图片颜色
2009/04/05 Javascript
jQuery库与其他JS库冲突的解决办法
2010/02/07 Javascript
jQuery 学习第七课 扩展jQuery的功能 插件开发
2010/05/17 Javascript
JavaScript回调(callback)函数概念自我理解及示例
2013/07/04 Javascript
只需一行代码,轻松实现一个在线编辑器
2013/11/12 Javascript
使用js判断数组中是否包含某一元素(类似于php中的in_array())
2013/12/12 Javascript
javascript实现捕捉键盘上按下的键
2015/05/05 Javascript
Js实现简单的小球运动特效
2016/02/18 Javascript
jQuery简单设置文本框回车事件的方法
2016/08/01 Javascript
angularJs中datatable实现代码
2017/06/03 Javascript
Angular5中调用第三方库及jQuery的添加的方法
2018/06/07 jQuery
微信小程序实时聊天WebSocket
2018/07/05 Javascript
angular ng-model 无法获取值的处理方法
2018/10/02 Javascript
微信小程序tabBar 返回tabBar不刷新页面
2019/07/25 Javascript
Python 列表(List)操作方法详解
2014/03/11 Python
wxpython中利用线程防止假死的实现方法
2014/08/11 Python
Python2.6版本中实现字典推导 PEP 274(Dict Comprehensions)
2015/04/28 Python
Python scikit-learn 做线性回归的示例代码
2017/11/01 Python
Django User 模块之 AbstractUser 扩展详解
2020/03/11 Python
利用jupyter网页版本进行python函数查询方式
2020/04/14 Python
python中shell执行知识点
2020/05/06 Python
基于python代码批量处理图片resize
2020/06/04 Python
如何使用Python处理HDF格式数据及可视化问题
2020/06/24 Python
python爬虫beautifulsoup解析html方法
2020/12/07 Python
HTML5的结构和语义(5):内嵌媒体
2008/10/17 HTML / CSS
实例教程 HTML5 Canvas 超炫酷烟花绽放动画实现代码
2014/11/05 HTML / CSS
Betsey Johnson官网:妖娆可爱的连衣裙及鞋子、手袋和配件
2016/12/30 全球购物
Linux管理员面试题 Linux admin interview questions
2014/11/01 面试题
求职信写作要突出重点
2014/01/01 职场文书
祖国在我心中演讲稿600字
2014/05/04 职场文书
建筑学专业自荐书
2014/07/09 职场文书
老乡会致辞
2015/07/28 职场文书
python源码剖析之PyObject详解
2021/05/18 Python