2011-09-29 94 views
10

免責聲明:我是新來的web開發使用多個數據庫中的CodeIgniter

場景:我要建一個使用ion_auth來管理所有的用戶/管理員信息的Web應用程序(使用MySQL數據庫),每個用戶有自己的數據庫(MySQL也是)用於核心應用程序。我在CodeIgniter的applicaton/config/database.php文件中自動加載了我用於ion_auth的數據庫。我使用標準的MVC格式(與每個數據庫有關的個人模型)。

問題:我需要知道如何輕鬆高效地在CodeIgniter中同時使用多個數據庫。我是否需要將兩個數據庫模式鏈接在一起,或者CodeIgniter會爲我做這些嗎?有沒有解決此問題的任何資源(我在嘗試找到問題時遇到問題)?

非常感謝您的幫助!

+1

你怎麼想使用多個數據庫?通過配置?由控制器?手動切換? – hakre

回答

23

在你的數據庫配置文件添加儘可能多的配置組爲你的數據庫的數字:

$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'); 
+0

秒殺我! +1 –

+4

確保設置'$ db ['default'] ['pconnect'] = FALSE;' – tpae

相關問題