我有一个管理页面,管理员可以在其中选择他/她想要跟踪数据库数据的位置:Local
或Master
如果他们选择Local,那么他们将从http:123.456.789:3306获取数据 如果他们选择Inter,那么他们将从http:987.546.321:3306
获取数据$query_builder = TRUE;
$db['Local'] = array(
'hostname' => '123.456.789',
.....
$db['Inter'] = array(
'hostname' => '987.546.321',
.....
从这里我成功地选择了我想从模型中获得的数据库:
function get_Onedata {
$this->db2 = $this->load->database('inter',TRUE);
...
$query = $this->db2->query($sql);
}
但是使用上面的方法,我必须在每个函数中声明我想要加载的数据库。
我想要的是,当我发送/传递变量时,例如:
$database = $this->input->post('database');
$toModel = $this->get_model->get_Onedata($database);
从父构造函数中获取数据库:
public function __construct($database)
{
parent::__construct();
if($database = 'inter')
{
$this->db = $this->load->database('inter',TRUE);
}
else
{
$this->db = $this->load->database('local',TRUE);
}
public function get_Onedata()
{
...
...
...
$query = $this->db->query($sql);
}
}
我希望有人知道我在上面的草图中做了什么。
有人可以帮我正确地完成这个方法吗?
非常感谢提前。
答案 0 :(得分:0)
如果你这样做......
$toModel = $this->get_model->get_Onedata($database);
然后你需要做这样的事情......
public function __construct(){
parent::__construct();
}
public function get_Onedata($database){
$this->set_database($database);
...
...
$query = $this->db->query($sql);
}
public function set_database($database){
if($database = 'inter'){
$this->db = $this->load->database('inter',TRUE);
}
else {
$this->db = $this->load->database('local',TRUE);
}
}
这是“一种方式”。