对非对象codeigniter调用成员函数insert()

对非对象codeigniter调用成员函数insert(),codeigniter,insert,Codeigniter,Insert,我试图在codeigniter中将数据插入mysql。控制器类: class Ci_insert extends CI_Controller { function __construct() { parent::__construct(); } function index() { $data = array(

我试图在codeigniter中将数据插入mysql。控制器类:

class Ci_insert extends CI_Controller
    {
        function __construct()
        {
            parent::__construct();
        }

        function index()
        {
            $data = array(
                          "USN" => "TRE5rCS89G",
                          "name" => "NITISH DOLAKASHARIA",
                          "branch" => "CS"
                          );

            $this->load->model('ci_insert_model');

            $this->ci_insert_model->addToDb($data);
        }

    }
模型类:

class ci_insert_model extends CI_Model
    {
        function __construct()
        {
            parent::__construct();
        }
        function addToDb($data)
        {

            //var_dump($data);
            $this->db->insert('class_record',$data);
        }
    }
但是当我试图运行代码时,它显示了
致命错误:在第12行的C:\wamp\www\CodeIgniter\application\models\ci\u insert\u model.php中的非对象上调用成员函数insert()

上面的代码有什么问题吗?

试试看

控制器:insert.php

class Insert extends CI_Controller
{
    function __construct()
    {
        parent::__construct();
    }

    function index()
    {
        $data = array(
                      "USN" => "TRE5rCS89G",
                      "name" => "NITISH DOLAKASHARIA",
                      "branch" => "CS"
                      );

        $this->load->model('insert_model');

        $this->insert_model->addToDb($data);
    }

}
模型:insert_Model.php

class Insert_model extends CI_Model
{
    function __construct()
    {
        parent::__construct();
    }
    function addToDb($data)
    {

        //var_dump($data);
        $this->db->insert('class_record',$data);
    }
}

请在类的后面写大写字母,不要像
ci
那样添加前缀,因为您缺少
$this->load->database()

$this->db->method_name()仅在加载数据库库时起作用

如果您计划在整个应用程序中使用数据库,我建议将其添加到
/application/config/
中的
autoload.php


正如其他人所提到的,从类名中删除
CI\uu
前缀
CI
是为框架类保留的。

您必须在
'$this->load->library('database')之前的模型中使用
'$this->db->insert()'

自动加载数据库库。转到配置文件夹选择autoload.php搜索$autoload['libraries'],并将空数组()替换为数组('database')。

在配置文件夹中添加自动加载库打开autoload.php并设置
$autoload['libraries']=array('database')

不要将
ci
用作为codeigniter本机类保留的类的前缀。来自文档:请注意,所有本机CodeIgniter库都以CI作为前缀,因此不要将其用作前缀。是否自动加载数据库库?