我加载了我的第一个模型:
$this->load->model('red_comercial');
然后我从中获取数据:
$Sitios = $this->red_comercial->Obtener_Sitios();
它工作正常,但是当我打电话给第二个模型时:
$config['hostname'] = "localhost";
$config['username'] = "root";
$config['password'] = "mipass";
$config['database'] = "midb";
$config['dbdriver'] = "mysql";
$config['dbprefix'] = "";
$config['pconnect'] = FALSE;
$config['db_debug'] = TRUE;
$this->load->model('punto_venta_model','',$config);
$Productos = $this->punto_venta_model->Obtener_Productos();
我收到此错误:
表格'我的第一个DataBaseUse的名称。我的第二个数据库的表格'不存在
错误是它仍然使用我的第一个数据库,我也这样做:
$DB1 = $this->load->database('grupo_uno', TRUE);
$DB2 = $this->load->database('grupo_dos', TRUE);
但它也不起作用:(
我可以用mysqli_query做到这一点,但你知道......
答案 0 :(得分:0)
我认为这是因为您无法真正使用多个数据库。
根据我之前提供的答案:Codeigniter - best way to use two different database
像这样更改数据库配置。为每个数据库创建一个单独的条目:
$db['default']['hostname'] = "localhost";
$db['default']['username'] = "user";
$db['default']['password'] = "database";
$db['default']['database'] = "db1";
$db['db1']['hostname'] = "localhost";
$db['db1']['username'] = "root";
$db['db1']['password'] = "mipass";
$db['db1']['database'] = "midb";
$db['db2']['hostname'] = "localhost";
$db['db2']['username'] = "user";
$db['db2']['password'] = "database";
$db['db2']['database'] = "db2";
//.. and so on
现在,在每个模型的构造函数中,执行以下操作:
public function __construct(){
parent::__construct();
$this->ci = &get_instance();
$this->db = $this->ci->load->database(DB_FOR_THIS_MODEL, TRUE);
}
基本上,您将此 this-> db 变量设置为该模型的相关数据库。 当模型使用默认数据库时,您不需要这样做。