PDO 解决数据库乱码方法

来源:互联网 发布:手机淘宝怎么退款申请 编辑:程序博客网 时间:2024/06/13 11:32

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

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

<?phpclass 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 属性:

<?phpclass 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;} }?>

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