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 相关文章推荐
在WIN98下以apache模块方式安装php
Oct 09 PHP
php桌面中心(三) 修改数据库
Mar 11 PHP
php查看session内容的函数
Aug 27 PHP
php中\r \r\n \t的区别示例介绍
Feb 08 PHP
在win7中搭建Linux+PHP 开发环境
Oct 08 PHP
php使用sql server验证连接数据库的方法
Dec 25 PHP
你应该知道PHP浮点数知识
May 13 PHP
php实现短信发送代码
Jul 05 PHP
在Debian系统下配置LNMP的教程
Jul 09 PHP
详解PHP实现执行定时任务
Dec 21 PHP
PHP实现四种基础排序算法的运行时间比较(推荐)
Aug 11 PHP
Laravel学习教程之View模块详解
Sep 18 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
使用swoole扩展php websocket示例
2014/02/13 PHP
PHP管理依赖(dependency)关系工具 Composer 安装与使用
2014/08/18 PHP
PHP根据key删除数组中指定的元素
2019/02/28 PHP
PHP设计模式之适配器模式(Adapter)原理与用法详解
2019/12/12 PHP
JS option location 页面跳转实现代码
2008/12/27 Javascript
jquery tools 系列 scrollable(2)
2009/09/06 Javascript
利用JQuery+EasyDrag 实现弹出可拖动的Div,同时向Div传值,然后返回Div选中的值
2009/10/24 Javascript
js Array操作的最简短最容易理解方法
2013/12/09 Javascript
jQuery实现动态添加和删除一个div
2015/08/12 Javascript
使用jQuery加载html页面到指定的div实现方法
2016/07/13 Javascript
JavaScript String(字符串)对象的简单实例(推荐)
2016/08/31 Javascript
ES6新特性之类(Class)和继承(Extends)相关概念与用法分析
2017/05/24 Javascript
解决webpack无法通过IP地址访问localhost的问题
2018/02/22 Javascript
Vue递归实现树形菜单方法实例
2018/11/06 Javascript
JS 自执行函数原理及用法
2019/08/05 Javascript
vue项目中自定义video视频控制条的实现代码
2020/04/26 Javascript
JavaScript find()方法及返回数据实例
2020/04/30 Javascript
js实现限定范围拖拽的示例
2020/10/26 Javascript
深入解析Python编程中JSON模块的使用
2015/10/15 Python
Python编程判断这天是这一年第几天的方法示例
2017/04/18 Python
Django ORM多对多查询方法(自定义第三张表&amp;ManyToManyField)
2019/08/09 Python
python线程定时器Timer实现原理解析
2019/11/30 Python
Python流程控制常用工具详解
2020/02/24 Python
基于canvas的骨骼动画的示例代码
2018/06/12 HTML / CSS
荷兰DOD药房中文官网:DeOnlineDrogist
2020/12/27 全球购物
外贸英语专业求职信范文
2013/12/25 职场文书
陈欧广告词
2014/03/14 职场文书
党员服务承诺书
2014/05/28 职场文书
中职生求职信
2014/07/01 职场文书
我心目中的好老师活动方案
2014/08/19 职场文书
升学宴答谢词
2015/01/05 职场文书
2015年社区反邪教工作总结
2015/10/14 职场文书
2016见义勇为事迹材料汇总
2016/03/01 职场文书
MySQL常见优化方案汇总
2022/01/18 MySQL
java后台调用接口及处理跨域问题的解决
2022/03/24 Java/Android
《艾尔登法环》1.03.3补丁上线 碎星伤害调整
2022/04/06 其他游戏