PHP使用PDO操作數(shù)據(jù)庫(kù)的亂碼問題解決方法
本文實(shí)例講述了PHP使用PDO操作數(shù)據(jù)庫(kù)的亂碼問題解決方法。分享給大家供大家參考,具體如下:
當(dāng)使用 PDO 連接操作數(shù)據(jù)庫(kù)的時(shí)候,有時(shí)會(huì)出現(xiàn):保存在數(shù)據(jù)庫(kù)中的漢字為亂碼。以文件為 UTF-8 格式,其解決方法如下:
(1)實(shí)例化的對(duì)象直接執(zhí)行 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('數(shù)據(jù)庫(kù)連接錯(cuò)誤!錯(cuò)誤信息:'.$e->getMessage()); } $_pdo->query("SET NAMES utf8"); // $_pdo->exec('SET NAMES utf8'); //設(shè)置數(shù)據(jù)庫(kù)編碼,兩種方法都可以 return $_pdo; } } ?>
(2)在實(shí)例化 PDO 的第四個(gè)參數(shù)添加 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('數(shù)據(jù)庫(kù)連接錯(cuò)誤!錯(cuò)誤信息:'.$e->getMessage()); } return $_pdo; } } ?>
注:以上方法,都經(jīng)過測(cè)試。
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP基于pdo操作數(shù)據(jù)庫(kù)技巧總結(jié)》、《PHP運(yùn)算與運(yùn)算符用法總結(jié)》、《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《PHP基本語(yǔ)法入門教程》、《php操作office文檔技巧總結(jié)(包括word,excel,access,ppt)》、《php日期與時(shí)間用法總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫(kù)操作入門教程》及《php常見數(shù)據(jù)庫(kù)操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
- PHP PDO預(yù)處理語(yǔ)句及事務(wù)的使用
- PHP的PDO預(yù)處理語(yǔ)句與存儲(chǔ)過程
- php_pdo 預(yù)處理語(yǔ)句詳解
- PHP封裝類似thinkphp連貫操作數(shù)據(jù)庫(kù)Db類與簡(jiǎn)單應(yīng)用示例
- PHP5中使用mysqli的prepare操作數(shù)據(jù)庫(kù)的介紹
- php pdo操作數(shù)據(jù)庫(kù)示例
- PHP入門教程之使用Mysqli操作數(shù)據(jù)庫(kù)的方法(連接,查詢,事務(wù)回滾等)
- PHP中使用匿名函數(shù)操作數(shù)據(jù)庫(kù)的例子
- PHP中的MYSQL常用函數(shù)(php下操作數(shù)據(jù)庫(kù)必備)
- php 使用預(yù)處理語(yǔ)句操作數(shù)據(jù)庫(kù)
相關(guān)文章
PHP中VC6、VC9、TS、NTS版本的區(qū)別與用法詳解
ISAPI執(zhí)行方式是以DLL動(dòng)態(tài)庫(kù)的形式使用,可以在被用戶請(qǐng)求后執(zhí)行,在處理完一個(gè)用戶請(qǐng)求后不會(huì)馬上消失,所以需要進(jìn)行線程安全檢查2013-10-10PHP實(shí)現(xiàn)多級(jí)分類生成樹的方法示例
這篇文章主要介紹了PHP實(shí)現(xiàn)多級(jí)分類生成樹的方法,涉及php+mysql數(shù)據(jù)庫(kù)操作及數(shù)組與字符串遍歷、替換、組合等相關(guān)操作技巧,需要的朋友可以參考下2017-02-02php基于mcrypt_encrypt和mcrypt_decrypt實(shí)現(xiàn)字符串加密解密的方法
這篇文章主要介紹了php基于mcrypt_encrypt和mcrypt_decrypt實(shí)現(xiàn)字符串加密解密的方法,結(jié)合實(shí)例形式分析了mcrypt_encrypt和mcrypt_decrypt函數(shù)進(jìn)行加密、解密的相關(guān)使用技巧,需要的朋友可以參考下2016-07-07深入Memcache的Session數(shù)據(jù)的多服務(wù)器共享詳解
本篇文章是對(duì)Memcache的Session數(shù)據(jù)的多服務(wù)器共享進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06php 根據(jù)自增id創(chuàng)建唯一編號(hào)類
本文主要介紹了php根據(jù)自增id創(chuàng)建唯一編號(hào)類的相關(guān)知識(shí)。具有很好的參考價(jià)值。下面跟著小編一起來看下吧2017-04-04php返回相對(duì)時(shí)間(如:20分鐘前,3天前)的方法
這篇文章主要介紹了php返回相對(duì)時(shí)間的方法,可實(shí)現(xiàn)返回如:20分鐘前、3天前等格式時(shí)間,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04使用php轉(zhuǎn)義輸出HTML到JavaScript
本文給大家分享的是個(gè)人項(xiàng)目中的一個(gè)小需求,需要使用php轉(zhuǎn)義輸出HTML到JavaScript,就寫了個(gè)function,推薦給大家,希望大家能夠喜歡。2015-03-03