升级到CodeIgniter 2.1,在模型中使用多个数据库现已破碎

时间:2012-01-18 21:27:57

标签: model codeigniter-2

我最近升级到CodeIgniter 2.1。以下模型代码(machforms_model.php)在我以前的CI安装中正常工作。我还确认我的database.php文件与之前的安装相同,因此db配置不应该是我的问题的根源。我现在看到的错误消息是:致命错误:在第24行的models / machforms_model.php中的非对象上调用成员函数query(),其中第24行是我的第一次查询尝试。

machforms_model:php
class machforms_model extends CI_Model 
{

    public function __construct() {
        parent::__construct();
        $CI =& get_instance();
        $CI->machformsdb = $this->load->database('machforms', TRUE);
        $this->machformsdb = $CI->machformsdb; 
    }


        function deauthorize_user($user_guid) {
        $sql = 'delete from ap_sessions where user_guid=?';
        $sql_result = $machformsdb->query($sql,array($user_guid));   // LINE 24     
    }
}

我不确定为什么会收到过载错误。如果其他外部文件/配置信息可能是罪魁祸首,请通知我,我会相应地发布。

1 个答案:

答案 0 :(得分:0)

您的函数$machformsdb中未定义

deauthorize_user。你应该致电$this->machformsdb

此外:在您的构造函数中,$this已经是CI_Model的实例,因此您无需获取CodeIgniter单例实例。你可以写:

public function __construct() {
  parent::__construct();  
  $this->machformsdb = $this->load->database('machforms', TRUE);
}