发生以下错误:
致命错误:在非对象上调用成员函数prepare()
代码:
class Guestbook {
public $db;
public function getEntries(){
$result = false;
$query = 'SELECT * FROM db ORDER BY id DESC';
$stmt = $this->db->prepare($query); //error in this line (17)
// ...
}
}
答案 0 :(得分:1)
你有这个课程:
class Guestbook {
public $db;
您永远不会为$db
属性赋值,所以当您执行
$this->db->prepare($query);
你基本上在做
null->prepare($query);
在类构造函数中给$db
一个值(或者确保它以某种方式以某种方式传递到类中)并且你会没事的。
在
$db = new mysqli('localhost', 'root', '', 'guestbook');
在数据库连接中,与类中的$db
变量无关,除非您将其传递给类或在类中进行数据库初始化。