本文實例講述了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基於pdo操作數據庫技巧總結》、《PHP運算與運算符用法總結》、《PHP網絡編程技巧總結》、《PHP基本語法入門教程》、《php操作office文檔技巧總結(包括word,excel,access,ppt)》、《php日期與時間用法總結》、《php面向對象程序設計入門教程》、《php字符串(string)用法總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》
希望本文所述對大家PHP程序設計有所幫助。