繁体   English   中英

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

[英]Codeigniter Fatal error: Call to a member function query() on a non-object

现在我正在学习 Codeigniter。 我的数据库比较多,所以这次选择了Anketa one。 为什么会报错:

**Fatal error: Call to a member function query() on a non-object in /var/www/domains/svastara/application/controllers/anketa.php on line 12** ???

我查了一下,用户和传入数据库没问题,数据库在conf中加载,查了表名。 那还有什么?

$this->db = $this->load->database('anketa');

        $q = $this->db->query("SELECT * FROM anketaip");

        if($q->num_rows()>0){
        foreach ($q->result() as $row)
        {
            $data[] = $row;
        }

        }return $data;

        $this->load->view('anketa_nova', $data);

在您将第二个参数传递为 TRUE 之前,下面的行不会返回您的数据库对象

改变:

$this->db = $this->load->database('anketa');

$newdb = $this->load->database('anketa',TRUE);

$q = $newdb->query("SELECT * FROM anketaip");

参考链接: http ://codeigniter.com/user_guide/database/connecting.html

你不必这样做

$this->db = $this->load->database('anketa');

你可以简单地这样做

$this->load->database('anketa');

$this->db->query('blah blah');

还要确保数据库存在并且您有权访问它。

可能您需要加载数据库库,请检查您正在加载数据库库的 autoload.php

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

或者在你的控制器中加载库

$this->load->library('database');

嗨丹妮拉,

我认为此资源链接可能对您有所帮助。 因为当你一次使用多个数据库时,你需要遵循 GDB 在他的帖子中解释的语法。 但是你说无法访问数据库,这意味着它无法检测配置文件夹中的数据库,php。 因此,将该文件链接放在外部的 php 文件中。 然后它可能会起作用。

http://codeigniter.com/forums/viewthread/191673/

这就是问题所在。 我设置$db['default']['autoinit'] = TRUE并且它起作用了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM