繁体   English   中英

如何在 CodeIgniter 2 中使用 PDO?

[英]How can I use PDO in CodeIgniter 2?

我想使用 PDO 而不是内置的数据库类。 但是我该怎么做呢? 我尝试进行 博客文章中建议的修改。 我注释掉了system\database\DB.php的一部分,还添加了:

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

return $DB;

但是现在,如果我执行$this->load->database(); 在 Controller 中。 那么我应该如何使用 PDO 并在 CodeIgniter 中使用 PDO 执行数据库查询?

我还尝试在 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)."\n";
}    

在此处了解有关 3 PDO 数据库调用的更多信息...

PDO查询
PDO 执行
PDO 准备

编辑:还要检查您的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; 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM