Codeigniter 2手动数据库连接

时间:2011-04-02 16:57:01

标签: php database codeigniter codeigniter-2

我刚刚测试了对codeigniter 2的升级并遇到了麻烦。我的网站使用多个数据库,一个是“系统”数据库,另一个是“内容”数据库之一。一次只加载两个数据库,根据会话中的值,系统和任何内容都是必需的。

由于使用了会话,我通过MY_Controller中的函数连接到控制器构造函数中的相关内容数据库。

不知何故,自从升级到codeigniter 2后,内容数据库的连接对象无法进入使用它的模型。

即。连接的变量是在控制器和模型以及MY_Controller和MY_Model的顶部公开的,但是当它到达MY_Model时,它不再是一个对象。

任何想法会重置变量的值,因为它传递给codeigniter 2中的模型而不是codeigniter 1.7.3?

1 个答案:

答案 0 :(得分:0)

两个数据库是否使用相同的主机名,用户名和密码?

如果是,那么这就是我们遇到的同样问题: http://codeigniter.com/forums/viewthread/72240/P15/

我们通过创建具有不同用户名的mysql用户来解决它,userA可以访问dbA,而userB可以访问dbB。

当你有:

时,会发生什么
  1. $this->dbA = $this->load->database('dbA_config', true);
  2. $this->dbB = $this->load->database('dbB_config', true);
  3. 当您运行第2行时,php会查看此连接是否已打开,问题是php只查看主机名,用户名和密码,因此当您尝试更改数据库时,PHP实际上是通过引用更新dbA。

    希望有所帮助。

    -Noah