Php CodeIgniter数据库检索问题

Php CodeIgniter数据库检索问题,php,mysql,codeigniter,Php,Mysql,Codeigniter,这是我第一次尝试在CodeIgniter中编写代码。问题是它无法从数据库检索数据。它抛出的错误是: A PHP Error was encountered Severity: Notice Message: Undefined property: Site::$db Filename: core/Model.php Line Number: 51 我可以理解在core/model.php这一行中要更改什么 这是另一个错误: Fatal error: Call to a member

这是我第一次尝试在CodeIgniter中编写代码。问题是它无法从数据库检索数据。它抛出的错误是:

A PHP Error was encountered

Severity: Notice

Message: Undefined property: Site::$db

Filename: core/Model.php

Line Number: 51
我可以理解在
core/model.php
这一行中要更改什么

这是另一个错误:

 Fatal error: Call to a member function query() on a non-object in C:\wamp\www\CI_one\application\models\site_model.php on line 9
控制器 模型为

<?php
    class site_model extends CI_Model{

        function index(){
            echo "default index";
        }

        function getValues(){
            $query = $this->db->query("select * from nav_menu");

            if ($query->num_rows() > 0)
            {
               foreach ($query->result() as $row)
               {
                  echo $row->c1;
                  echo $row->m2;
                  echo $row->d3;
               }
            }
            return array(
                "name" => "nameless",
                "form" => "formless",
                "age"  => "ageless");
        }
    }

请在CodeIgniter控制器中编写一个构造函数,如下所示:

public function __construct() {
    parent::__construct();
}
除此之外:

您必须首先加载数据库库。在

autoload.php:

  $autoload[‘libraries’] = array(‘database’);
或在控制器构造函数中作为:

  $this->load->database();

我希望这会有帮助

在Codeigniter中,您必须手动加载DB库,如下所示:

$this->load->database(); 
或者您必须按照sandip的指示自动加载库

在应用程序中,您可能需要自动加载多个库和帮助程序,因此自动加载是最佳做法,而不是手动加载它们。请阅读有关自动加载的信息

另外,请阅读其余的文档,您将从中了解有关CI的所有信息。它简单、简洁,并且有示例

希望这会有所帮助

试试这个:

控制器:

<?php
class Site extends CI_Controller {
    function datta(){
        $this->load->database();
        $this->load->model('site_model');
        $get=$this->site_model->getValues();
        $data['get']=$get;
        $this->load->view('data3',$data);
    }
}

打开config/autoload.php,检查数组$autoload['libraries']是否包含'database'@Adeel added$autoload['libraries']=array('database');正如所建议的,但引发了一个类似这样的错误:遇到了一个错误,无法加载请求的类:数据库您如何调用控制器?提及完整的URL。不要试图模仿模型中的东西。使用它的视图。检查您的
database.php
并检查数据库配置是否正确。就像我打电话一样,只是为了检查我在模型中的回声。db配置正确,在自动加载库中添加了db,尝试使$db['default']['pconnect']=TRUE;在app/config/db中为false仍不工作@SilentAssassin@gurudev我已经更新了我的答案,请查看!两者都显示了在无法加载请求的类时遇到的错误:database$this->load->database('mydb');这是错误的,只需使用$this->load->database();。尝试过了,但还是同样的错误,我是否需要在app/config/database.php以外的其他地方提到db name可能是正确的,添加这一行并清除浏览器头部产生的结果。对不起,我没有足够的声誉,不能告诉你。谢谢,没问题。很好,你的问题已经解决了。在继续之前,请尝试给CI文档留出一些时间,当您需要任何功能时,只要查看CI文档,您就会找到它,并遵循他们的工作方式。仍然是相同的错误!如果我尝试将db name作为参数放在$this->load->database()中;它说遇到了一个错误,您指定了一个无效的数据库连接组。
  $this->load->database();
$this->load->database(); 
<?php
class Site extends CI_Controller {
    function datta(){
        $this->load->database();
        $this->load->model('site_model');
        $get=$this->site_model->getValues();
        $data['get']=$get;
        $this->load->view('data3',$data);
    }
}