2014-08-31 77 views
0

所以我在我的課上做了一個函數,它應該從我的數據庫中獲取設置。它給我這個錯誤:致命錯誤:調用未定義的方法Database :: prepare(),第53行

Fatal error: call to undefined method Database::prepare() 

它是在第53行

這裏的線51「至66(我花了一些更多的行,因爲你可以看到整個功能

public function getSetting($setting) 
{ 
    $query = $this->db->prepare('SELECT value FROM ' . $this->prefix('settings') . ' WHERE name= ?'); 
    $query->bind_param('s', $setting); 
    $query->execute(); 
    $query->bind_result($result); 
    if ($query->num_rows > 0) 
    { 
     while ($stmt->fetch()) 
     { 
      return $result; 
     } 
    } 
    $query->free_result(); 
    $query->close; 
} 

$db thingie通過構造函數傳遞。

有人可以幫我解決這個問題嗎?

謝謝。

編輯:

杯託我$this->db使用var_dump,這是輸出。 (我美化了一下)

  object(database)#1 (5) { ["hostname"]=> string(9) "localhost" ["username"]=> string(4) "root" ["password"]=> string(0) "" ["database"]=> string(7) "wscript" ["connection"]=> object(mysqli)#2 (19) 
     { 
     ["affected_rows"]=> int(0) ["client_info"]=> string(79) "mysqlnd 5.0.11-dev - 20120503 - $Id: bf9ad53b11c9a57efdb1057292d73b928b8c5c77 $" ["client_version"]=> int(50011) ["connect_errno"]=> int(0) ["connect_error"]=> NULL ["errno"]=> int(0) 
["error"]=> string(0) "" ["error_list"]=> array(0) { 
     } ["field_count"]=> int(0) ["host_info"]=> string(20) "localhost via TCP/IP" ["info"]=> NULL ["insert_id"]=> int(0) ["server_info"]=> string(6) "5.6.20" ["server_version"]=> int(50620) 
    ["stat"]=> string(136) "Uptime: 18286 Threads: 1 Questions: 1699 Slow queries: 0 Opens: 191 Flush tables: 1 Open tables: 82 Queries per second avg: 0.092" 
    ["sqlstate"]=> string(5) "00000" ["protocol_version"]=> int(10) ["thread_id"]=> int(216) ["warning_count"]=> int(0) } } 
+0

看起來問題出在您的數據庫類中 - 錯誤是說它沒有prepare()方法。 – 2014-08-31 12:26:24

+0

@MattBrowne我已經使用過相同的方法,它的工作,然後... – 2014-08-31 12:43:22

+0

在第52行添加var_dump($ this-> db),看看會發生什麼 – Cups 2014-08-31 12:45:22

回答

1

想通了。 $db只是對DB類的引用。我忘了把連接變量之間。

相關問題