Codeigniter - 使用两个不同数据库的最佳方式

its*_*sme 7 php database codeigniter codeigniter-2

有人知道在我的应用程序中使用2个不同的数据库的最佳做法吗?

我需要将数据存储在两个位置不同的数据库中(主机,用户名,密码,所有数据都会更改).

我打算像往常一样创建模型,并在构造中设置db主机,名称,传递等.

Ahm*_*nas 16

我不确定你是否称之为"最佳"方式,但正如本教程中所述,这是一种方式,

在数据库文件中,您具有默认配置,其中一部分是:

$db['default']['hostname'] = "localhost";
$db['default']['username'] = "user";
$db['default']['password'] = "database";
$db['default']['database'] = "db1";
Run Code Online (Sandbox Code Playgroud)

现在你可以创建另一个组,比如我们称之为group1,我们希望它除了名称之外都有与默认数据库设置相同的所有内容,所以你可以做

$db['group1']=$db['default'];
$db['group1']['database']="db2";
Run Code Online (Sandbox Code Playgroud)

然后,当你想使用第二个数据库时,就去吧

$DB2 = $this->load->database('group1', TRUE); 
Run Code Online (Sandbox Code Playgroud)

然后,$this->db->foo()你会做,而不是$DB2->foo()

或者(正如sbaaaang的评论中所建议的那样),你可以做的$this->db=$DB2;就是保持一切相同

你可以将它扩展到这样的多个组

 $DB1 = $this->load->database('group1', TRUE); 
 $DB2 = $this->load->database('group2', TRUE); 
 ...
 $DBn = $this->load->database('groupn', TRUE); 
Run Code Online (Sandbox Code Playgroud)

  • $ this-> db = $ this-> load-> database('group1',TRUE); (3认同)