Ben bir veritabanı nesnesinin tek bir statik örneği olan sınıf, satır ve sütun için iki statik işlevler oluşturmak mümkün aşağıdaki kodu var.
<?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();
}
} ?>
Ancak, başka bir sınıftan GetRow çağırdığınızda, bu gibi
$data = Database::getRow($id, "posts");
Ben şu hatayı alıyorum:
Fatal error: Call to a member function fetch_assoc() on a non-object in database.php on line 27
Ve tekrar ve tekrar kontrol edin ve her şey yolunda gibi görünüyor, belki çağrıda bir hata var (?)