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 和 COM
Oct 09 PHP
php开发工具之vs2005图解
Jan 12 PHP
php xml常用函数的集合(比较详细)
Jun 06 PHP
更改localhost为其他名字的方法
Feb 10 PHP
PHPExcel内存泄漏问题解决方法
Jan 23 PHP
php实现字符串首字母转换成大写的方法
Mar 17 PHP
PHP文件缓存smarty模板应用实例分析
Feb 26 PHP
PHP扩展框架之Yaf框架的安装与使用
May 18 PHP
PHP 中 DOMDocument保存xml时中文出现乱码问题的解决方案
Sep 19 PHP
php封装的单文件(图片)上传类完整实例
Oct 18 PHP
php快速导入大量数据的实例方法
Sep 23 PHP
Laravel 读取 config 下的数据方法
Oct 13 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五种设计模式小结
2011/03/23 PHP
PHP中register_globals参数为OFF和ON的区别(register_globals 使用详解)
2012/02/05 PHP
php加速器eAccelerator的配置参数、API详解
2014/05/05 PHP
CI框架扩展系统核心类的方法分析
2016/05/23 PHP
Javascript 不能释放内存.
2006/09/07 Javascript
直接生成打开窗口代码,不必下载
2008/05/14 Javascript
JavaScript 联动的无限级封装类,数据采用非Ajax方式,随意添加联动
2010/06/29 Javascript
jquery实现心算练习代码
2010/12/06 Javascript
jQuery EasyUI API 中文文档 可调整尺寸
2011/09/29 Javascript
jquery上传插件fineuploader上传文件使用方法(jquery图片上传插件)
2013/12/05 Javascript
javascript判断网页是关闭还是刷新
2015/09/12 Javascript
使用Chart.js图表库制作漂亮的响应式表单
2015/10/28 Javascript
javascript实现别踩白块儿小游戏程序
2015/11/22 Javascript
vue,angular,avalon这三种MVVM框架优缺点
2016/04/27 Javascript
浅谈bootstrap源码分析之scrollspy(滚动侦听)
2016/06/06 Javascript
Bootstrap学习笔记之css样式设计(1)
2016/06/07 Javascript
基于JQuery实现分隔条的功能
2016/06/17 Javascript
react-router实现跳转传值的方法示例
2017/05/27 Javascript
JS实现unicode和UTF-8之间的互相转换互转
2017/07/05 Javascript
JQuery判断正整数整理小结
2017/08/21 jQuery
VueJS 集成 Medium Editor的示例代码 (自定义编辑器按钮)
2017/08/24 Javascript
Webpack框架核心概念(知识点整理)
2017/12/22 Javascript
echarts实现地图定时切换散点与多图表级联联动详解
2018/08/07 Javascript
vue实现跳转接口push 转场动画示例
2019/11/01 Javascript
微信小程序语音同步智能识别的实现案例代码解析
2020/05/29 Javascript
详细分析React 表单与事件
2020/07/08 Javascript
解决python文件字符串转列表时遇到空行的问题
2017/07/09 Python
python看某个模块的版本方法
2018/10/16 Python
Python开发企业微信机器人每天定时发消息实例
2020/03/17 Python
使用Python判断一个文件是否被占用的方法教程
2020/12/16 Python
html5 canvas绘制放射性渐变色效果
2018/01/04 HTML / CSS
Boden澳大利亚官网:英国在线服装公司
2018/08/05 全球购物
瑞典在互联网上最大的宠物商店:Animail
2020/10/31 全球购物
个人银行贷款担保书
2014/04/01 职场文书
纪律教育学习月活动总结
2014/08/27 职场文书
Nginx同一个域名配置多个项目的实现方法
2021/03/31 Servers