Как я могу использовать PDO в CodeIgniter 2?

Я бы хотел использовать PDO вместо встроенных классов базы данных. Но как я могу это сделать? Я попытался внести изменения, предложенные в блоге . Я прокомментировал часть system\database\DB.php а также добавил:

 $DB = new PDO( $params['dbdriver'].':host='.$params['hostname'].';dbname='.$params['database'], $params['username'], $params['password']); return $DB; 

Но теперь мой PHP-код падает, если я делаю $this->load->database(); в контроллере. Итак, как я должен использовать PDO и выполнять запросы базы данных с помощью PDO в CodeIgniter?

Я также попытался использовать этот код в контроллере:

 foreach($this->db->query('SELECT * FROM users') as $row) { print_r($row); } 

но это не сработало.

Solutions Collecting From Web of "Как я могу использовать PDO в CodeIgniter 2?"

 $stmt = $this->db->prepare("SELECT * FROM users"); $stmt->execute(); foreach ($stmt->fetch(PDO::FETCH_ASSOC) as $row) { print_r($row); } 

Или:

 foreach ($this->db->query("SELECT * FROM users") as $row) { print_r($row)."\n"; } 

Подробнее о 3 вызовах базы данных PDO …

Запрос PDO
PDO Exec
Подготовка PDO

EDIT: Также проверьте файл app/config/database.php для следующих настроек:

 $active_group = 'default'; $active_record = FALSE; $db['default']['hostname'] = 'YOURHOSTNAME'; $db['default']['username'] = 'YOURUSERNAME'; $db['default']['password'] = 'YOURPASSWORD'; $db['default']['database'] = 'YOURDATABASE'; $db['default']['dbdriver'] = 'mysql'; $db['default']['dbprefix'] = ''; $db['default']['pconnect'] = TRUE; $db['default']['db_debug'] = TRUE; $db['default']['cache_on'] = FALSE; $db['default']['cachedir'] = ''; $db['default']['char_set'] = 'utf8'; $db['default']['dbcollat'] = 'utf8_general_ci'; $db['default']['swap_pre'] = ''; $db['default']['autoinit'] = TRUE; $db['default']['stricton'] = FALSE;