我想从MySQL中的另一个数据库中获得数据,除了默认的数据库.除了执行代码之外,我还在我的模型中添加了以下代码行.另一个数据库,即‘storresDB’.

$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();
    }

代码运行正常.但该代码从defualt 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...

Mysql相关问答推荐

使用复合主键更新后的MySQL触发器失败

高效的 SQL 查询,用于计算半小时时间序列中已发生的行的一部分

需要按总金额检索前 3 个供应商,每个类别 - 子类别

从三个不同的表中生成两列,并使用分组变量计算这些列的比率

仅当其他行相等时才 Select 行值

使用 SET 变量进行 MySQL 查询

MySql查询无结果

添加一个日期字段大于另一个日期字段的要求

如何在 MySQL 中为用户设置默认架构

一次查询 MySQL 插入多行

使用 Java 通过 SSH 连接到远程 MySQL 数据库

更改 Laravel 的 created_at 和 updated_at 的名称

如何将 mysqldump 的输出拆分为较小的文件?

如何将数组存储到mysql中?

在osx的命令行中使用Mysql-找不到命令?

Python 是否支持 MySQL 准备好的语句?

MySQL 更新连接表

在 Ubuntu 上安装 mysql gem 的困难

为什么 GRANT 在 MySQL 中不起作用?

MySQL 的最大并发连接数