2011-10-28 67 views
-1

Possible Duplicate:
Call to a member function on a non-object
Call to a member function on a non-object致命錯誤:在笨

使用活動記錄時,當我嘗試使用CodeIgniters有效記錄,它總是給我的錯誤來訪問數據庫調用一個成員函數插入()

Fatal error: Call to a member function insert() on a non-object

Fatal error: Call to a member function get() on a non-object

下面

在我的數據庫

$active_group = 'default'; 
$active_record = TRUE; 

$db['default']['hostname'] = 'localhost'; 
$db['default']['username'] = 'root'; 
$db['default']['password'] = ''; 
$db['default']['database'] = 'test'; 
$db['default']['dbdriver'] = 'mysql'; 
$db['default']['dbprefix'] = ''; 
$db['default']['pconnect'] = TRUE; 
$db['default']['db_debug'] = TRUE; 
$db['default']['cache_on'] = FALSE; 
$db['default']['cachedir'] = ''; 
$db['default']['char_set'] = 'utf8'; 
$db['default']['dbcollat'] = 'utf8_general_ci'; 
$db['default']['swap_pre'] = ''; 
$db['default']['autoinit'] = TRUE; 
$db['default']['stricton'] = FALSE; 

的設置,我已經自動加載它

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

以下是我的模型

class Leads_model extends CI_Model { 

function __construct() 
    { 
    parent::__construct(); 
    } 

    function insertq(){ 

     $q=$this->db->insert('test',$data); 

     if ($q){ 

      return true; 
     }  
     else 
     { 
      return false; 
     } 


    } 
} 

有人可以建議我什麼我做錯了,爲什麼會出現這個錯誤?

+0

你在哪裏調用$ this-> db-> get()?你確定它是指這個模型? –

+0

致命錯誤:在第14行的C:\ wamp \ www \ quest \ application \ models \ leads_model.php中的非對象上調用成員函數insert()。當表單被提交時,我調用$ this-> db-> get()。該視圖加載罰款從控制器,但是當我提交爲我得到該錯誤。 – LiveEn

回答

0

問題是我添加了一些變量來讓自動完成工作進入模型核心。這是在刪除這些問題後導致問題及其工作。

但自動完成似乎現在不工作。

2

你在調用父構造函數嗎?

class Leads_model extends CI_Model 
{ 
    function __construct() 
    { 
     parent::__construct(); 
    } 
    ... 
} 
+0

是的..它已經叫了。 – LiveEn

1

確實很奇怪。 請確保: 1)您的錯誤是指該模型,而不是另一個; 2)調用__construct()在模型

如果同時此檢查都通過了,嘗試時加載,看看問題是否仍然存在:

class Leads_model extends CI_Model { 

    function __construct() 
    { 
    parent::__construct(); 
    } 

    function test() 
    { 
    $this->load->database(); 
    $data = array('field1' => 'value1','field2' => 'value2'); 
    $this->db->insert('test',$data); 
    } 

    function run_test() 
    { 
    $dbo = $this->load->database('default',TRUE); 
    $query = $this->$dbo->get('tablename'); 
    echo $query->num_rows(); 
    } 

} 

你也可以看到,如果功能返回連接ID,作爲一個測試:

$dbobject = $this->load->database('default',TRUE); 
    var_dump($dbobject->conn_id); 
+0

當我轉儲我得到「資源(33)類型(mysql鏈接持久性)」 – LiveEn

+0

好吧,所以類完美工作,並建立連接。你可以嘗試運行我以上提到的'run_test()'函數(只是改變你的表名,obv)。看看它是否仍然給出錯誤 –

+0

我向模型核心添加了一些變量以獲得自動完成的工作。我刪除後,一切工作正常。非常感謝您的幫助。但在Eclipse中自動完成不起作用。 – LiveEn