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 相关文章推荐
PHP4与PHP3中一个不兼容问题的解决方法
Oct 09 PHP
php 缓存函数代码
Aug 27 PHP
php算开始时间到过期时间的相隔的天数
Jan 12 PHP
php循环语句 for()与foreach()用法区别介绍
Sep 05 PHP
php5.3中连接sqlserver2000的两种方法(com与ODBC)
Dec 29 PHP
php分页函数完整实例代码
Sep 22 PHP
php检查日期函数checkdate用法实例
Mar 19 PHP
laravel中的错误与日志用法详解
Jul 26 PHP
利用PHP自动生成印有用户信息的名片
Aug 01 PHP
解决php-fpm.service not found问题的办法
Jun 06 PHP
PHP levenshtein()函数用法讲解
Mar 08 PHP
php常用经典函数集锦【数组、字符串、栈、队列、排序等】
Aug 23 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强制类型转换,慎用!
2013/06/06 PHP
PHP中unset,array_splice删除数组中元素的区别
2014/07/28 PHP
PHP模块memcached使用指南
2014/12/08 PHP
PHP中使用xmlreader读取xml数据示例
2014/12/29 PHP
PHP传参之传值与传址的区别
2015/04/24 PHP
防止动态加载JavaScript引起的内存泄漏问题
2009/10/08 Javascript
sencha touch 模仿tabpanel导航栏TabBar的实例代码
2013/10/24 Javascript
jquery 隐藏与显示tr标签示例代码
2014/06/06 Javascript
js+jquery实现图片裁剪功能
2015/01/02 Javascript
jQuery创建自定义的选择器用以选择高度大于100的超链接实例
2015/03/18 Javascript
使用Raygun来自动追踪AngularJS中的异常
2015/06/23 Javascript
深入理解JavaScript的React框架的原理
2015/07/02 Javascript
javascript设计简单的秒表计时器
2020/09/05 Javascript
H5上传本地图片并预览功能
2017/05/08 Javascript
解决vue-cli3 使用子目录部署问题
2018/07/19 Javascript
JS使用Prim算法和Kruskal算法实现最小生成树
2019/01/17 Javascript
layui 解决form表单点击无反应的问题
2019/10/25 Javascript
纯JS开发baguetteBox.js响应式画廊插件
2020/06/28 Javascript
Python出现segfault错误解决方法
2016/04/16 Python
Python实现针对含中文字符串的截取功能示例
2017/09/22 Python
PyTorch上搭建简单神经网络实现回归和分类的示例
2018/04/28 Python
使用Python实现从各个子文件夹中复制指定文件的方法
2018/10/25 Python
Python 读取串口数据,动态绘图的示例
2019/07/02 Python
基于Python实现签到脚本过程解析
2019/10/25 Python
用CSS3实现无限循环的无缝滚动的示例代码
2017/11/01 HTML / CSS
三陽商会官方网站:Sanyo iStore
2019/05/15 全球购物
金智子午JAVA面试题
2015/09/04 面试题
应届大学生的推荐信
2013/11/20 职场文书
环境整治工作方案
2014/05/18 职场文书
三峡导游词
2015/01/31 职场文书
个人工作违纪检讨书
2015/05/05 职场文书
公司周年庆典致辞
2015/07/30 职场文书
家电创业计划书
2019/08/05 职场文书
golang正则之命名分组方式
2021/04/25 Golang
Python绘画好看的星空图
2022/03/17 Python
Tomcat安装使用及部署Web项目的3种方法汇总
2022/08/14 Servers