致命错误:对(CodeIgniter)中的非对象调用成员函数query()


Fatal error: Call to a member function query() on a non-object in (CodeIgniter)

我是codeigniter的新手,这是我的第一个型号控制器连接,所以你的任何建议都对我有帮助,我未来的理解将考虑这一点,请帮助解决这里的

Fatal error: Call to a member function query() on a non-object in C:'xampp'htdocs'xampp'ci'CI_test'application'models'testquery.php on line 7

我的控制器:

class Testdb extends CI_Controller
   {
    public function Index()
    {
        $this->load->model("testquery");
        $data['results'] = $this->testquery->query1();
        $this->load->view("view_db");
    }
   }

我的型号是:

class Testquery extends CI_Model
{
    public function query1()
    {
        $query = $this->db->query("SELECT * from color"); //this is line 7 error
        /**
        $sql = "SELECT * from color";       
        $query = $this->db->query($sql); 
        foreach ($query->result() as $row)
        {
           echo $row->color_id;
           echo $row->color_name;
           echo $row->color_desc;
        }
         */
        return $query->result();
    }
}

我的观点是:

<<!DOCTYPE unspecified PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<head>
</head>
<body>
<h1>Welcome db</h1>
<?php 
print_r($results);
?>
</body>
</html>

我的连接详细信息:

config/database.php具有-

$active_group = 'default';
$active_record = TRUE;
$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = '';
$db['default']['database'] = 'varundb';
$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;

我的config/autoload.php有-

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

我是不是错过了什么?我也浏览过其他帖子人们建议的地方-

  • 在我使用数据库的每个函数中加载数据库
  • 不要链接查询(完成后我会尝试)
  • 更改group_name

我使用的是XAMPP服务器,数据库很好(我看到的是表,里面的数据)。做了所有的,但我还是犯了错误!!

试试这个:保持真实$this->load->model("Testquery",'',TRUE);

您必须加载数据库。

class Testdb extends CI_Controller
   {
function __construct() {
        parent::__construct();
        $this->load->database();
        $this->load->model("testquery");
    }
    public function Index()
    {
       $data['results'] = $this->testquery->query1();
       $this->load->view("view_db");
    }
   }

__construct()方法添加到控制器和模型中。你不需要省略这些。