У меня есть следующий код, который может создать класс с одним статическим экземпляром объекта базы данных и двумя статическими функциями для строк и столбцов.
<?php class Database{
private static $instance;
private function __construct() {}
private function __clone(){}
public static function call(){
if(!isset(self::$instance)){
self::$instance = new MySQLi("localhost", "foo", "bar", "fizz");
if(self::$instance->connect_error){
throw new Exception('Error MySQL: ' . self::$instance->connect_error);
}
}
return self::$instance;
}
public static function getRow($id, $db){
$query = "SELECT * FROM ".$db." WHERE id=".$id;
$result = self::call()->query($query);
return $result->fetch_assoc();
}
} ?>
Однако, когда я вызываю getRow из другого класса, вот так
$data = Database::getRow($id, "posts");
Я получаю следующую ошибку:
Неустранимая ошибка: вызов функции-члена
fetch_assoc () для необъекта в
database.php
по линии 27
И я проверяю это снова и снова, и все, кажется, в порядке, может быть, у меня есть ошибка в вызове ()?