2017-01-02 3 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 с $ this-> SetAttribute – Andreas

+0

@Andreas Проблема на линии внутри попытке поймать, проблема-х появляются, когда я вставляю кодировку – AgainMe

+0

ОК. Проверьте ответ на @ fran800m и вызовите родительский конструктор с помощью набора символов в массиве параметров конструктора PDO. – 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") 
     ); 
Смежные вопросы