从Codeigniter MySQL中的另一个数据库获取数据



我想从MySQL中的另一个数据库获取数据,除了defolat数据库。除了令人兴奋的代码外,我还在模型中添加了以下行。另一个数据库为"storesDB"。

$this->load->database('storesDB', TRUE);

我的模型如下:

public function getEquipment($id = null)
{  
$this->db->select('*');
$this->db->from('tbl_equipment');
$this->db->join('tbl_equipment_category', 'tbl_equipment.eq_cat=tbl_equipment_category.id_cat');
$this->db->where("tbl_equipment.status", '1');
if ($id)
$this->db->where("tbl_equipment.id", $id);        
$query = $this->db->get();
return $query->result();
}

代码工作正常。但该代码从defalt DB而不是通过"storesDB"获取数据。

修改后的代码如下:

public function getEquipment($id = null)
{       
$this->load->database('storesDB', TRUE);
$this->db->select('*');
$this->db->from('tbl_equipment');
$this->db->join('tbl_equipment_category', 'tbl_equipment.eq_cat=tbl_equipment_category.id_cat');
$this->db->where("tbl_equipment.status", '1');
if ($id)
$this->db->where("tbl_equipment.id", $id);        
$query = $this->db->get();
return $query->result();
}

原因可能是什么?

原因是没有正确分配第二个数据库。您还需要为第二个数据库设置正确的配置

$config['hostname'] = "host";
$config['username'] = "user";
$config['password'] = "pass";
$config['database'] = "storesDB";
// etc..

然后加载数据库:

$this->db2 = load->database($config, TRUE);

现在有了默认数据库$this->db和第二个数据库$this->db2

并继续您的代码,如:

$this->db2->select('*');
$this->db2->from('tbl_equipment');
// etc...

我在Codeigniter方面没有经验,但在标准sql查询中,您可以在表前面添加数据库名称,以从另一个数据库获取信息,如:

从sakila.actor中选择*;

假设你没有连接到sakila数据库。

使用此方法,两个数据库必须具有相同的凭据

相关内容

  • 没有找到相关文章

最新更新