2011-07-12 81 views
2
加入

目前我已經在我的模型中,這不工作代碼:笨從多個數據庫

$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查詢的won'y工作,有沒有梅索德做從聯接其他數據庫?

回答

2

沒有內置的方法來進行連接恐怕沒有。如果數據庫在同一個數據庫實例中,並且您可以授予用戶訪問這兩個數據庫的權限,則可以通過在表上爲數據庫名稱加上數據庫名稱即database1.table1來加入該數據庫。

另一種方法是使用僅限於in-php的解決方案來加入數據。

+0

感謝您的回覆,但是您對於僅限於in-php的解決方案意味着什麼?你能給個例子嗎?不幸的是,數據庫不屬於同一個用戶。因此,數據庫名稱的前綴將不起作用:( – Mark

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(); 

因此,根據需要編輯你的查詢。