2011-09-29 75 views
10

免责声明:我是新来的web开发使用多个数据库中的CodeIgniter

场景:我要建一个使用ion_auth来管理所有的用户/管理员信息的Web应用程序(使用MySQL数据库),每个用户有自己的数据库(MySQL也是)用于核心应用程序。我在CodeIgniter的applicaton/config/database.php文件中自动加载了我用于ion_auth的数据库。我使用标准的MVC格式(与每个数据库有关的个人模型)。

问题:我需要知道如何轻松高效地在CodeIgniter中同时使用多个数据库。我是否需要将两个数据库模式链接在一起,或者CodeIgniter会为我做这些吗?有没有解决此问题的任何资源(我在尝试找到问题时遇到问题)?

非常感谢您的帮助!

+1

你怎么想使用多个数据库?通过配置?由控制器?手动切换? – hakre

回答

23

在你的数据库配置文件添加尽可能多的配置组为你的数据库的数字:

$db['a']['hostname'] = 'localhost'; 
$db['a']['username'] = 'user'; 
$db['a']['password'] = 'pw'; 
$db['a']['database'] = 'db1'; 
... 

$db['b']['hostname'] = 'localhost'; 
$db['b']['username'] = 'user'; 
$db['b']['password'] = 'pw'; 
$db['b']['database'] = 'db2'; 
... 

//set the default db 
$active_group = 'a'; 

然后在模型初始化类变量:

private $db_b; 

,并进入构造器,将其设置如下

__construct() 
{ 
    ... 
    $this->db_b = $this->load->database('b', TRUE); 
} 

现在您可以使用数据库b像往常一样:

$this->db_b->query('YOUR QUERY'); 

,显然默认的一个如下:

$this->db->query('YOUR QUERY'); 
+0

秒杀我! +1 –

+4

确保设置'$ db ['default'] ['pconnect'] = FALSE;' – tpae

相关问题