Model 升级到CodeIgniter 2.1,模型中多个数据库的使用现已中断
我最近升级到CodeIgniter 2.1。下面的模型代码machforms_model.php在我以前的CI安装中正常工作。我还确认了我的database.php文件与之前的安装相同,因此db配置不应该是问题的根源。我现在看到的错误消息是:致命错误:第24行models/machforms_model.php中的非对象上的成员函数查询调用,其中第24行是我的第一次查询尝试Model 升级到CodeIgniter 2.1,模型中多个数据库的使用现已中断,model,codeigniter-2,Model,Codeigniter 2,我最近升级到CodeIgniter 2.1。下面的模型代码machforms_model.php在我以前的CI安装中正常工作。我还确认了我的database.php文件与之前的安装相同,因此db配置不应该是问题的根源。我现在看到的错误消息是:致命错误:第24行models/machforms_model.php中的非对象上的成员函数查询调用,其中第24行是我的第一次查询尝试 machforms_model:php class machforms_model extends CI_Model {
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
}
}
我不确定为什么会收到过载错误。如果其他外部文件/配置信息可能是罪魁祸首,请告知,我将相应发布 $machformsdb未在您的函数deauthorize_user中定义。您应该调用$this->machformsdb
此外:在您的构造函数中,$已经是CI_模型的一个实例,因此您不需要获取CodeIgniter单例实例。你可以写:
public function __construct() {
parent::__construct();
$this->machformsdb = $this->load->database('machforms', TRUE);
}
非常感谢。我很好奇为什么我的代码在pre-2 CI中工作得如此草率?再次感谢!