PHP使用PDO操作資料庫亂碼問題的解決方案及執行個體

來源:互聯網
上載者:User
這篇文章主要介紹了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;    }  }?>

總結:以上就是本篇文的全部內容,希望能對大家的學習有所協助。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.