很抱歉,如果這是一個真正的新手問題(也是PHP的新手),但我不能從文檔看着辦吧:切換數據庫
我希望能夠使用一個默認的數據庫,如果我不speficy別的,而且使用$這個 - >數據庫具有以下配置工作正常:
$active_group = 'default';
$active_record = TRUE;
$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = 'root';
$db['default']['database'] = 'ion_auth';
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;
$db['visitorsDB']['hostname'] = 'localhost';
$db['visitorsDB']['username'] = 'root';
$db['visitorsDB']['password'] = 'root';
$db['visitorsDB']['database'] = 'visitorsDB';
$db['visitorsDB']['dbdriver'] = 'mysql';
$db['visitorsDB']['dbprefix'] = '';
$db['visitorsDB']['pconnect'] = TRUE;
$db['visitorsDB']['db_debug'] = TRUE;
$db['visitorsDB']['cache_on'] = FALSE;
$db['visitorsDB']['cachedir'] = '';
$db['visitorsDB']['char_set'] = 'utf8';
$db['visitorsDB']['dbcollat'] = 'utf8_general_ci';
$db['visitorsDB']['swap_pre'] = '';
$db['visitorsDB']['autoinit'] = TRUE;
$db['visitorsDB']['stricton'] = FALSE;
但後來我想在我的車型之一,以使用第二個數據庫,所以我嘗試這樣做:
function __contruct() {
parent::__construct();
$this->db = $this->load->database('visitorsDB', TRUE);
}
public function getAllVisitors($paramArr) {
//$this->db = $this->load->database('visitorsDB', TRUE);
但那不行。只有當我取消註釋最後一行時,我才能在方法本身中加載數據庫才能工作。我不明白爲什麼。我也嘗試在類的開頭聲明一個新的類變量 - private $ myDB; - 然後在構造函數中實例化它 - $ myDB = $ this-> load-> database('visitorsDB',TRUE);
但這也沒有效果。那麼我怎樣才能爲整個模型切換數據庫呢?
當你在你的模型('專用$ myDB')創建了一個新的屬性,並試圖從你的構造設置你做了'$ MYDB = ... '或'$ this-> myDB = ...'? – birderic