用户
 找回密码
 入住 CI 中国社区
搜索
查看: 1732|回复: 2
收起左侧

[HELP] CI连接多数据库时,Model导入错误数据库导致报错。

[复制链接]
发表于 2015-8-5 19:10:07 | 显示全部楼层 |阅读模式
我们公司的网站CI在本地测试的时候都很正常。俩个数据库连接也都是正常的.
俩个数据库database.php设置也问题。
现在的问题是:我们的database是设置的autoload.有个model应该调用的数据库1(default),但是却调用数据库2(ihuawen_com_hw).

这是Model的代码:
class TCW_Model extends CI_Model {
       
        public function __construct(){
                parent::__construct();
               
        }       

/* 总数 */
        function get_num(){
                return $this->db->get($this->table)->num_rows();
        }

}

这是报错的信息:

Error Number: 1146

Table 'ihuawen_com_hw.article_online' doesn't exist

SELECT * FROM (`article_online`) WHERE `type` = 1 AND `del` = 0 ORDER BY `id` desc LIMIT 1

Filename: models/admin/tcw_cn/epaper.php

Line Number: 11


错误信息可以看到说 数据库'ihuawen_com_hw里没有article_online'这个表,这是对的确实没有。因为article_online表是在default数据库的。

现在问题是我们的数据库是auto load的,所以在构造函数里不像手动加载可以看到加载语句。

问题1:怎么才能在自动加载数据的情况下,查看加载的是那个数据库

问题2: 我在本地,除了数据库的设置因为用户名不同,其他文件一模一样,但是本地就没有错误加载,但是在上传到hosting的代理商服务器就出现问题。


恳求回复!!!


发表于 2015-8-5 20:12:44 | 显示全部楼层
你检查下你生产上的代码,$active_group 参数设置的是 default 么:
PHP复制代码
 
$active_group = 'default';
 
复制代码


或者你也可以改成手动加载数据库试试:
PHP复制代码
 
$this->load->database('default');
 
复制代码
 楼主| 发表于 2015-8-5 22:24:15 | 显示全部楼层
aneasystone 发表于 2015-8-5 20:12
你检查下你生产上的代码,$active_group 参数设置的是 default 么:

你说的active_group 没有实验,不知道好用不。
不过,我在controller中引用model的function中添加了:$DB = $this->load->database('default',TRUE); -->>> 手动加载数据库解决了问题。

多谢你的回复

本版积分规则