簡體   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