2014-07-02 67 views
-1

我需要從會話(瀏覽器)讀取數據庫名稱,並使用此名稱作爲全局數據庫連接(所有數據庫函數)而不是存儲在database.php中的名稱。我應該如何覆蓋/擴展MY_Loader.php才能做到這一點?覆蓋數據庫類的數據庫名稱

回答

0

嗯......你爲什麼要這麼做?我從來不知道這件事會做。你可以擴展數據庫類,檢查數據庫名稱的會話,或者我可以試試這個;

在加載數據庫之前,您可以加載會話並使用它來定義數據庫配置;

$config['hostname'] = $this->session->userdata('db_hostname'); 
$config['username'] = $this->session->userdata('db_username'); 
$config['password'] = $this->session->userdata('db_password'); 
$config['database'] = $this->session->userdata('db_database'); 
// Now, load the database 
$this->load->database($config); 
+0

當您在小應用程序中將其用於控制​​器中的一些功能時,這將起作用。但是對於龐大的系統來說,這不是最好的解決方案(代碼重複一次又一次,所以它會混亂) – peter

+0

或者,將其添加到庫構造函數中,然後自動加載它? – Craig

+0

也許它應該工作(我嘗試了各種方式,但我做錯了什麼)。最後我直接在config/database.php中檢索會話 – peter