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配置心得包含MYSQL5乱码解决
Nov 20 PHP
PHPMailer安装方法及简单实例
Nov 25 PHP
PHP var_dump遍历对象属性的函数与应用代码
Jun 04 PHP
PHP 第三节 变量介绍
Apr 28 PHP
php采用curl模仿登录人人网发布动态的方法
Nov 07 PHP
PHP面试题之文件目录操作
Oct 15 PHP
最准确的php截取字符串长度函数
Oct 29 PHP
简单解析PHP程序的运行流程
Jun 23 PHP
php根据用户名和手机号查询是否存在手机号码
Feb 16 PHP
php 如何设置一个严格控制过期时间的session
May 05 PHP
php 中phar包的使用教程详解
Oct 26 PHP
tp5.1 框架数据库常见操作详解【添加、删除、更新、查询】
May 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中实现汉字转区位码应用源码实例解析
2010/06/14 PHP
深入探讨:PHP使用数据库永久连接方式操作MySQL的是与非
2013/06/05 PHP
Prototype使用指南之form.js
2007/01/10 Javascript
用JavaScript页面不刷新时全选择,全删除(GridView)
2009/04/14 Javascript
javascript 跳转代码集合
2009/12/03 Javascript
js 格式化时间日期函数小结
2010/03/20 Javascript
JQuery 实现在同一页面锚点链接之间的平滑滚动
2014/10/29 Javascript
JS输入用户名自动显示邮箱后缀列表的方法
2015/01/27 Javascript
浅谈JavaScript中数组的增删改查
2016/06/20 Javascript
JS随机打乱数组的方法小结
2016/06/22 Javascript
Javascript字符串常用方法详解
2016/07/21 Javascript
AngularJS 2.0入门权威指南
2016/10/08 Javascript
遍历js中对象的属性和值的实例
2016/11/21 Javascript
不得不看之JavaScript构造函数及new运算符
2017/08/21 Javascript
详解vue-cli本地环境API代理设置和解决跨域
2017/09/05 Javascript
JavaScript中运算符规则和隐式类型转换示例详解
2017/09/06 Javascript
微信小程序 数据绑定及运算的简单实例
2017/09/20 Javascript
mockjs,json-server一起搭建前端通用的数据模拟框架教程
2017/12/18 Javascript
解决vue-cli + webpack 新建项目出错的问题
2018/03/20 Javascript
JavaScript冒泡算法原理与实现方法深入理解
2020/06/04 Javascript
[11:27]《一刀刀一天》之DOTA全时刻20:TI4总奖金突破920W TS赛事分析
2014/06/18 DOTA
[06:50]DSPL次级职业联赛十强晋级之路
2014/11/18 DOTA
简介Django中内置的一些中间件
2015/07/24 Python
Python中url标签使用知识点总结
2020/01/16 Python
使用python处理题库表格并转化为word形式的实现
2020/04/14 Python
Python如何定义有默认参数的函数
2020/08/10 Python
Python实现http接口自动化测试的示例代码
2020/10/09 Python
利用Pycharm + Django搭建一个简单Python Web项目的步骤
2020/10/22 Python
python自动化办公操作PPT的实现
2021/02/05 Python
中考冲刺决心书
2014/03/11 职场文书
投标诚信承诺书
2014/05/26 职场文书
会议室标语
2014/06/21 职场文书
禁止酒驾标语
2014/06/25 职场文书
幼儿园教师个人总结
2015/02/05 职场文书
法制教育主题班会
2015/08/13 职场文书
《金肉人》米特&《航海王》阿鹤声优松岛实因胰脏癌去世 享寿81岁
2022/04/13 日漫