[英]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
现在我正在学习 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 文件中。 然后它可能会起作用。
这就是问题所在。 我设置$db['default']['autoinit'] = TRUE
并且它起作用了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.