Codeigniter从多个数据库加入

时间:2011-07-12 20:01:04

标签: php codeigniter join mysqli

目前我的模型中没有这个代码:

$this->db_site->order_by('id', 'random');
$select = $this->db_site->get_where('berichten', array('beantwoord' => 0, 'gelezen' => 0));   
$this->db->join('replymessages', 'replymessages.msgid != berichten.id');
$this->db->join('replymessages', 'replymessages.time < '.time()); 

在这个例子中,连接不能用于db_site查询,是否存在从其他数据库进行连接的方法?

2 个答案:

答案 0 :(得分:2)

没有内置的方法来加入我恐怕没有。如果数据库位于同一数据库实例中,并且您可以授予用户对两个数据库的访问权限,则可以通过在表上添加数据库名称前缀来加入,即database1.table1。

另一种方法是使用in-php only解决方案来连接数据。

答案 1 :(得分:1)

/config/database.php

为数据库连接创建一组新的配置

$db['seconddb']['hostname'] = 'localhost';
$db['seconddb']['username'] = 'krish';
$db['seconddb']['password'] = 'pass';
$db['seconddb']['database'] = 'oOoOoO';
$db['seconddb']['dbdriver'] = 'mysql';
$db['seconddb']['dbprefix'] = '';
$db['seconddb']['pconnect'] = TRUE;
$db['seconddb']['db_debug'] = TRUE;
$db['seconddb']['cache_on'] = FALSE;
$db['seconddb']['cachedir'] = '';
$db['seconddb']['char_set'] = 'utf8';
$db['seconddb']['dbcollat'] = 'utf8_general_ci';
$db['seconddb']['swap_pre'] = '';
$db['seconddb']['autoinit'] = TRUE;
$db['seconddb']['stricton'] = FALSE;

加载数据库

$this->load->database('seconddb');

连接多个数据库

$db1 = $this->load->database('default', TRUE);
$db2 = $this->load->database('seconddb', TRUE);

并且语法会为活动记录更改lil位。

而不是

$this->db->query();

你应该使用

$db1->query();

$db2->query();

所以,只需根据需要编辑您的查询。