首页 文章

致命错误:在CodeIgniter中使用活动记录时调用成员函数insert()[复制]

提问于
浏览
-1

可能重复:调用非对象上的成员函数调用非对象上的成员函数

当我尝试使用CodeIgniters Active记录访问数据库时,它总是给我错误

致命错误:在非对象上调用成员函数insert()致命错误:在非对象上调用成员函数get()

以下是我的数据库中的设置

$active_group = 'default';
$active_record = TRUE;

$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = '';
$db['default']['database'] = 'test';
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;

我已经自动加载了它

$autoload['libraries'] = array('database','session');

以下是我的模特

class Leads_model extends CI_Model {

function __construct()
  {
    parent::__construct();
  }

    function insertq(){

        $q=$this->db->insert('test',$data);

        if ($q){

            return true;
        }       
        else
        {
            return false;
        }


    }
}

有人可以建议我,我做错了什么,为什么我得到那个错误?

3 回答

  • 0

    你在调用父构造函数吗?

    class Leads_model extends CI_Model 
    {
        function __construct()
        {
            parent::__construct();
        }
       ...
    }
    
  • 1

    这确实很奇怪 . 确保:1)您的错误是指该模型,而不是另一个模型; 2)在模型中调用__construct()

    如果同时进行了这两项检查,请尝试及时加载并查看问题是否仍然存在:

    class Leads_model extends CI_Model {
    
      function __construct()
      {
        parent::__construct();
      }
    
      function test()
      {
        $this->load->database();
        $data = array('field1' => 'value1','field2' => 'value2');
        $this->db->insert('test',$data);
      }
    
      function run_test()
      {
         $dbo = $this->load->database('default',TRUE);
         $query = $this->$dbo->get('tablename');
         echo $query->num_rows();
      }
    
    }
    

    您还可以查看函数是否返回连接ID,作为测试:

    $dbobject = $this->load->database('default',TRUE);
      var_dump($dbobject->conn_id);
    
  • 2

    问题是我添加了一些变量以使自动完成工作进入模型核心 . 这导致问题及其在删除后的工作 .

    但是自动完成现在似乎不起作用 .

相关问题