在find_by_id()方法中,第一行有此错误(在第14行的C:\ wamp \ www \ product.php中的非对象上调用成员函数query())
include_once('database.php');
class Product{
private $database;
public function _construct (){
$this->database = new MySQLDatabase();
}
public function find_by_id($id=1){
$result = $this->database->query("select * from product where id = $id");
$array = $this->database->fetch_array($result);
return $array;
}
}
这是我上面包含的database.php文件
class MySQLDatabase{
private $connection ;
public function _construct(){
$this->open_connection();
}
public function open_connection(){
$dbc = mysqli_connect(DB_HOST,DB_USER,DB_PASSWORD,DB_DBNAME);
$this->connection = $dbc;
echo 'connection opened';
}
public function close_connection(){
mysqli_close($this->connection);
}
public function query($sql){
$result = mysqli_query($this->connection,$sql);
return $result;
}
public function fetch_array($result){
return mysqli_fetch_array($result);
}
}
为什么会出现这个错误?请帮助我,并提前致谢。
答案 0 :(得分:0)
您的班级名为" MySQLDatabase",但您正在呼叫
$this->database = new Database();
因此,您没有数据库对象和"查询"不是一个功能。您必须按名称(而不是文件名)调用该类,因此将其更改为
$this->database = new MySQLDatabase();
您的代码应该有效。
答案 1 :(得分:0)
更改
_construct()
到
__construct()
这应解决您的问题,因为PHP在创建对象时调用 __ construct()。
希望这会有所帮助。
答案 2 :(得分:0)