Codeigniter多个数据库连接

时间:2011-10-19 20:55:12

标签: php database codeigniter activerecord

我正在考虑多种数据库使用方式。根据codeigniter用户指南。要连接到其他数据库,请使用以下

$db2 = $this->load->database('second');

然后进行交互使用,

$db2->get('second_table');

我在非对象上收到成员函数“where()”的致命错误调用。

以下行

$db2->where('field1', $data['item']);

以及

$db2->get('second_table');

我在哪里错了?

感谢您的帮助。

2 个答案:

答案 0 :(得分:9)

为了返回数据库对象,您需要传递TRUE作为第二个参数:

$db2 = $this->load->database('second', TRUE);

有关详细信息,请参阅数据库类的manual

确保您已在application / config / database.php

中加载该数据库的配置
$db['default']['hostname'] = 'localhost';
//.........

$db['second']['hostname'] = 'localhost';
//..........

答案 1 :(得分:0)

在config / database.php

/

* DB1 */
$active_group = "forum";
$active_record = TRUE;

$db['DB1']['hostname'] = "xxxxx";
$db['DB1']['username'] = "xxxxx";
$db['DB1']['password'] = "xxxxx";
$db['DB1']['database'] = "xxxxx";
and other configs....

/* DB2 */

$db['DB2']['hostname'] = "xxxxx";
$db['DB2']['username'] = "xxxxx";
$db['DB2']['password'] = "xxxxx";
$db['DB2']['database'] = "xxxxx";
$db['DB2']['dbdriver'] = "mysql";
$db['DB2']['dbprefix'] = "";
and so on...

您可以按

使用数据库
$this->DB1 = $this->CI->load->database('DB1', TRUE);
$this->DB2 = $this->CI->load->database('DB2', TRUE);