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源码之explode使用说明
Aug 05 PHP
php 错误处理经验分享
Oct 11 PHP
PHP调用Linux的命令行执行文件压缩命令
Jan 27 PHP
一个好用的PHP验证码类实例分享
Dec 27 PHP
PHP管理依赖(dependency)关系工具 Composer的自动加载(autoload)
Aug 18 PHP
ThinkPHP提交表单时默认自动转义的解决方法
Nov 25 PHP
php中smarty模板条件判断用法实例
Jun 11 PHP
Linux系统中设置多版本PHP共存配合Nginx服务器使用
Dec 21 PHP
详解PHP的Laravel框架中Eloquent对象关系映射使用
Feb 26 PHP
php 开发中加密的几种方法总结
Mar 22 PHP
Laravel关联模型中过滤结果为空的结果集(has和with区别)
Oct 18 PHP
php-fpm超时时间设置request_terminate_timeout资源问题分析
Sep 27 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 print EOF实现方法
2009/05/21 PHP
PHP中最容易忘记的一些知识点总结
2013/04/28 PHP
PHP获取浏览器信息类和客户端地理位置的2个方法
2014/04/24 PHP
thinkphp框架实现删除和批量删除
2016/06/29 PHP
php 广告点击统计代码(php+mysql)
2018/02/21 PHP
laravel框架使用极光推送消息操作示例
2020/02/15 PHP
使用EXT实现无刷新动态调用股票信息
2008/11/01 Javascript
基于jquery的仿百度搜索框效果代码
2011/04/11 Javascript
JQUERY1.6 使用方法四 检测浏览器
2011/11/23 Javascript
DOM节点深度克隆函数cloneNode()用法实例
2015/01/12 Javascript
JS解析XML实例分析
2015/01/30 Javascript
简单实现的JQuery文本框水印插件
2016/06/14 Javascript
jQuery leonaScroll 1.1 自定义滚动条插件(推荐)
2016/09/17 Javascript
jQuery仿写百度百科的目录树
2017/01/03 Javascript
js 数据存储和DOM编程
2017/02/09 Javascript
使用jQuery ajaxupload插件实现无刷新上传文件
2017/04/23 jQuery
JavaWeb表单及时验证功能在输入后立即验证(含用户类型,性别,爱好...的验证)
2017/06/09 Javascript
解决JavaScript中0.1+0.2不等于0.3问题
2018/10/23 Javascript
JS监听事件的叠加和移除功能
2018/11/19 Javascript
15 分钟掌握vue-next响应式原理
2019/10/13 Javascript
[01:17:55]VGJ.T vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/20 DOTA
[01:05:59]Mineski vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.22
2019/09/05 DOTA
tensorflow实现简单的卷积神经网络
2018/05/24 Python
利用Python实现微信找房机器人实例教程
2019/03/10 Python
使用python远程操作linux过程解析
2019/12/04 Python
tensorflow ckpt模型和pb模型获取节点名称,及ckpt转pb模型实例
2020/01/21 Python
Python可以实现栈的结构吗
2020/05/27 Python
使用Keras 实现查看model weights .h5 文件的内容
2020/06/09 Python
Mountain Warehouse波兰官方网站:英国户外品牌
2019/08/29 全球购物
什么造成了Java里面的异常
2016/04/24 面试题
摄影展策划方案
2014/06/02 职场文书
大学毕业生个人总结
2015/02/28 职场文书
2015年招生工作总结
2015/05/04 职场文书
会计试用期工作总结2015
2015/05/28 职场文书
2015新教师教学工作总结
2015/07/22 职场文书
认识实习感想
2015/08/10 职场文书