如何在CodeIgniter 2中使用PDO? [英] How can I use PDO in CodeIgniter 2?

查看:112
本文介绍了如何在CodeIgniter 2中使用PDO?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想使用PDO而不是内置的数据库类。但我该怎么办呢?我尝试在博文中提出的修改建议。我注释掉了 system\database\DB.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 system\database\DB.php and also added:

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

return $DB;

但现在我的PHP代码崩溃,如果我做 $ this-> load-> database(); 。所以我应该如何使用PDO和执行数据库查询使用PDO在CodeIgniter?

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)."\n";
}    

了解有关3个PDO数据库调用的详细信息...

Learn more about 3 PDO database calls here...

PDO查询

PDO Exec

PDO准备

编辑:同时检查您的 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆