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安装全攻略:APACHE
Oct 09 PHP
说明的比较细的php 正则学习实例
Jul 30 PHP
学习php笔记 字符串处理
Oct 19 PHP
修改php.ini不生效问题解决方法(上传大于8M的文件)
Jun 14 PHP
Thinkphp中import的几个用法详细介绍
Jul 02 PHP
PHP Warning: Module 'modulename' already loaded in问题解决办法
Mar 16 PHP
php通过排列组合实现1到9数字相加都等于20的方法
Aug 03 PHP
php如何获取文件的扩展名
Oct 28 PHP
CI框架实现优化文件上传及多文件上传的方法
Jan 04 PHP
PHP实现的回溯算法示例
Aug 15 PHP
修改Laravel自带的认证系统的User类的命名空间的步骤
Oct 15 PHP
PHP实现图片防盗链破解操作示例【解决图片防盗链问题/反向代理】
May 29 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
CodeIgniter生成网站sitemap地图的方法
2013/11/13 PHP
php生成图片缩略图的方法
2015/04/07 PHP
php递归函数怎么用才有效
2018/02/24 PHP
PHP通过curl获取接口URL的数据方法
2018/05/31 PHP
PHP实现的DES加密解密类定义与用法示例
2020/11/02 PHP
php实现数组重复数字统计实例
2018/09/30 PHP
php实现算术验证码功能
2018/12/05 PHP
Laravel 实现Eloquent模型分组查询并返回每个分组的数量 groupBy()
2019/10/23 PHP
Prototype String对象 学习
2009/07/19 Javascript
javaScript 利用闭包模拟对象的私有属性
2011/12/29 Javascript
深入分析原生JavaScript事件
2014/12/29 Javascript
jquery渐隐渐显的图片幻灯闪烁切换实现方法
2015/02/26 Javascript
jQuery弹出层插件Lightbox_me使用指南
2015/04/21 Javascript
js简单实现标签云效果实例
2015/08/06 Javascript
jQuery实现默认是闭合的FAQ展开效果菜单
2015/09/14 Javascript
浅谈vue3中effect与computed的亲密关系
2019/10/10 Javascript
vue 遮罩层阻止默认滚动事件操作
2020/07/28 Javascript
[01:21:36]CHAOS vs Alliacne 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
python根据经纬度计算距离示例
2014/02/16 Python
整理Python中的赋值运算符
2015/05/13 Python
Python多进程原理与用法分析
2018/08/21 Python
解决echarts中饼图标签重叠的问题
2020/05/16 Python
Yves Rocher伊夫·黎雪美国官网:法国始创植物美肌1959
2019/01/09 全球购物
Muziker英国:中欧最大的音乐家商店
2020/02/05 全球购物
杭州信雅达系统.NET工程师面试试题
2015/02/08 面试题
Java面试题:说出如下代码的执行结果
2015/10/30 面试题
行政部主管岗位职责
2013/12/28 职场文书
党员干部2014全国两会学习心得体会
2014/03/10 职场文书
巾帼建功标兵事迹材料
2014/05/11 职场文书
电子商务专业自荐信
2014/06/02 职场文书
委托书范本
2014/09/13 职场文书
党员批评与自我批评发言材料
2014/10/14 职场文书
优秀共产党员事迹材料
2014/12/18 职场文书
小学一年级数学教学计划
2015/01/20 职场文书
八年级历史教学反思
2016/02/19 职场文书
解决vue自定义组件@click点击失效问题
2022/04/30 Vue.js