在 CodeIgniter 中使用多个数据库

2023-11-25

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

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


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

$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');
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 CodeIgniter 中使用多个数据库 的相关文章