[英]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.