如何在 CodeIgniter 2 中使用 PDO? [英] How can I use PDO in CodeIgniter 2?
问题描述
我想使用 PDO 而不是内置的数据库类.但是我该怎么做呢?我尝试进行博客文章中建议的修改.我注释掉了 systemdatabaseDB.php
的一部分并添加了:
I would like to use PDO instead of the built-in database-classes. But how can I do it? I tried to do the modifications suggested in a blog post. I commented out a part of systemdatabaseDB.php
and also added:
$DB = new PDO(
$params['dbdriver'].':host='.$params['hostname'].';dbname='.$params['database'],
$params['username'], $params['password']);
return $DB;
但是现在如果我在控制器中执行 $this->load->database();
,我的 PHP 代码会崩溃.那么我应该如何在 CodeIgniter 中使用 PDO 并使用 PDO 执行数据库查询?
But now my PHP-code crashes if I do $this->load->database();
in a Controller. So how should I use PDO and execute database queries using PDO in CodeIgniter?
我也尝试在控制器中使用此代码:
I have also tried to use this code in a Controller:
foreach($this->db->query('SELECT * FROM users') as $row) {
print_r($row);
}
但是没有用.
推荐答案
$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)."
";
}
在此处了解有关 3 个 PDO 数据库调用的更多信息...
Learn more about 3 PDO database calls here...
还要检查您的 app/config/database.php
文件以进行以下设置:
Also check your app/config/database.php
file for the following settings:
$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;
这篇关于如何在 CodeIgniter 2 中使用 PDO?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!