很抱歉,如果这是一个真正的新手问题(也是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