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) } }
看起來問題出在您的數據庫類中 - 錯誤是說它沒有prepare()方法。 – 2014-08-31 12:26:24
@MattBrowne我已經使用過相同的方法,它的工作,然後... – 2014-08-31 12:43:22
在第52行添加var_dump($ this-> db),看看會發生什麼 – Cups 2014-08-31 12:45:22