错误:未定义属性$ load

che*_*zeh 1 php mysql codeigniter-2

我是codeigniter的新手,我开发了一个代码来对数据库进行查询.我使用$this->load->database();并执行查询来加载数据库,但是当我运行代码时,浏览器会给我以下错误消息:

A PHP Error was encountered Severity: Notice Message: Undefined property: Tutorial::$load.
Fatal error: Call to a member function database() on a non-object
Run Code Online (Sandbox Code Playgroud)

这是我正在使用的代码:

class Tutorial extends CI_Controller {
    public function tutorial() {
        $this->load->database();
        $query = $this->db->query('SELECT user,pass,email FROM tablex');
        foreach ($query->result() as $row) {
            echo $row->title;
            echo $row->name;
        }
Run Code Online (Sandbox Code Playgroud)

我确信$db我的数据库配置文件中的变量已正确设置,我甚至尝试为autoload.php配置文件中的所有页面自动加载数据库; 仍然有同样的问题.任何想法如何去做?

sak*_*oon 5

更改

$this->load->database();
Run Code Online (Sandbox Code Playgroud)

$this->load->library('database');
Run Code Online (Sandbox Code Playgroud)

数据库不是直接的方法.它是codeigniter中的库,您必须将其作为库加载.

您也可以自动加载databaseautoload.php.

更新:

您为类和方法使用相同的名称.在PHP4中,与类名相同的方法被视为构造函数,但如果使用的是codeigniter 2+,则必须使用PHP5构造函数,即

function __construct()
{
    parent::__construct();
    /*Additional code which you want to run automatically in every function call */
}
Run Code Online (Sandbox Code Playgroud)

在Codeigniter 2+中,您不能给出与类名相同的方法.将方法更改为其他任何方法.index如果要在默认情况下加载方法,可以命名该方法.

这应该可以解决您的问题.