CodeIgniter的dbutils无法识别新的数据库连接

时间:2011-09-25 22:44:25

标签: php database codeigniter

Utility Class在初始化时是否重新连接数据库配置文件中定义的数据库?

以下代码从dev数据库返回数据库而不是prod:

$this->load->database('prod');
$this->load->dbutil();
print_r($this->dbutil->list_databases());

我的数据库配置文件包含:

$db['dev']['hostname'] = 'localhost';
$db['dev']['username'] = 'root';
$db['dev']['password'] = '';
$db['dev']['database'] = 'mydb';
...

$db['prod']['hostname'] = 'prodhost';
$db['prod']['username'] = 'username';
$db['prod']['password'] = 'password';
$db['prod']['database'] = 'myproddb';
...

编辑1:的确,dbutil似乎受到数据库配置文件中$ active_group变量的影响。如何为单个功能覆盖此功能?我认为那是$this->load->database('environment');的目的......不是吗?

1 个答案:

答案 0 :(得分:2)

Utility类使用分配给$ this-> db的数据库来执行其功能。

解决方案是将$this->load->database('environment')的结果分配给$this->db

$this->db = $this->load->database('environment', TRUE);