2017-01-02 57 views
0

我正在嘗試設置UTF8編碼PDO結構,我就是這樣做的,現在是這樣的:無法設置編碼爲pdf構建

public function __construct($dbType, $dbHost, $dbName, $dbUser, $dbPass, $charset) 
{ 
    try 
    { 
     parent::__construct($dbType . ':host=' . $dbHost . ';dbname=' . $dbName, $dbUser, 
      $dbPass. ';charset=' . $charset); 
    } 
    catch(PDOException $e) 
    { 
     $this->_error = $e->getMessage(); 
    } 

    parent::setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    parent::setAttribute(PDO::ATTR_PERSISTENT, true); 
} 

當達到setAttribute線我得到這個錯誤:

PDO::setAttribute(): SQLSTATE[00000]: No error: PDO constructor was not called

我做錯了什麼?

+0

如果要擴展PDO類嘗試用$這個 - >的setAttribute – Andreas

+0

@Andreas問題的ON LINE嘗試捕捉裏面,問題的替代父母的setAttribute ::我插入字符集時出現 – AgainMe

+0

OK。通過@ fran800m檢查答案,並使用PDO構造函數的options數組中的charset調用父構造函數。 – Andreas

回答

1

您是否在擴展PDO?當我想要實例化一個PDO對象我這樣寫:

$pdoObj = new PDO(
      'mysql:dbname=' . DB_NAME . 
      ';host=' . HOST_NAME . ";", 
      USER, 
      PWD, 
      array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8") 
     );