一尘不染

在CodeIgniter中使用多个数据库

sql

免责声明:我是Web开发的新手

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

问题:我需要了解如何在CodeIgniter中轻松高效地一次使用多个数据库。我是否需要将两个数据库架构链接在一起,还是CodeIgniter会为我做到这一点?有没有解决这个问题的资源(我很难找到一个资源)?

非常感谢您的所有帮助!


阅读 160

收藏
2021-03-17

共1个答案

一尘不染

在数据库配置文件中,添加与数据库数量一样多的配置组:

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

然后将其设置为contructor,如下所示

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

现在您可以b照常使用数据库了:

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

显然是默认值,如下所示:

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