在CodeIgniter中使用多个数据库

a14dhokn  于 7个月前  发布在  其他
关注(0)|答案(1)|浏览(60)

场景:我正在构建一个Web应用程序,它使用ion_auth来管理所有用户/管理员信息(使用MySQL数据库),每个用户都有自己的数据库(MySQL也是)用于核心应用程序目的。我已经自动加载了我在CodeIgniter中的application/application/database.php文件中用于ion_auth的数据库。我使用标准MVC格式(每个数据库都有单独的模型)。
问题:我需要知道如何在CodeIgniter中轻松有效地同时使用多个数据库。我需要将两个数据库模式链接在一起吗?或者CodeIgniter会为我做这件事吗?有没有任何资源可以解决这个问题(我很难找到一个)?

kupeojn6

kupeojn61#

在数据库配置文件中添加与数据库数量相同的配置组:

$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;


然后,输入constructor,设置如下

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


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

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


显然,默认值如下所示:

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

相关问题