当前位置:首页 > PHP教程 > php应用 > 列表

PHP使用PDO操作数据库的乱码问题解决方法

发布:smiling 来源: PHP粉丝网  添加日期:2021-07-27 11:04:28 浏览: 评论:0 

这篇文章主要介绍了PHP使用PDO操作数据库的乱码问题解决方法,实例分析了编码设置及属性设置解决乱码问题的实现技巧,需要的朋友可以参考下。

本文实例讲述了PHP使用PDO操作数据库的乱码问题解决方法,分享给大家供大家参考,具体如下:

当使用 PDO 连接操作数据库的时候,有时会出现:保存在数据库中的汉字为乱码。以文件为 UTF-8 格式,其解决方法如下:

(1)实例化的对象直接执行 query() 方法或者 exec() 方法:

  1. <?php 
  2.   class DB { 
  3.     static public function getDB() { 
  4.       try { 
  5.         $_opts_values = array(PDO::ATTR_PERSISTENT=>true,PDO::ATTR_ERRMODE=>2); 
  6.         $_pdo = new PDO(DB_DSN, DB_NAME, DB_PASS, $_opts_values); 
  7.       } catch (PDOException $e) { 
  8.         exit('数据库连接错误!错误信息:'.$e->getMessage()); 
  9.       } 
  10.       $_pdo->query("SET NAMES utf8"); // $_pdo->exec('SET NAMES utf8'); //设置数据库编码,两种方法都可以 
  11.       return $_pdo
  12.     } 
  13.   } 
  14. ?> 

(2)在实例化 PDO 的第四个参数添加 MYSQL_ATTR_INIT_COMMAND 属性:

  1. <?php 
  2.   class DB { 
  3.     static public function getDB() { 
  4.       try { 
  5.         $_opts_values = array(PDO::ATTR_PERSISTENT=>true,PDO::ATTR_ERRMODE=>2,PDO::MYSQL_ATTR_INIT_COMMAND=>'SET NAMES utf8'); 
  6.         $_pdo = new PDO(DB_DSN, DB_NAME, DB_PASS, $_opts_values); 
  7.       } catch (PDOException $e) { 
  8.         exit('数据库连接错误!错误信息:'.$e->getMessage()); 
  9.       } 
  10.       return $_pdo
  11.     } 
  12.   } 
  13. ?> 

注:以上方法,都经过测试。

Tags: PDO操作数据库 PHP乱码

分享到: