php mysqli query erwartet, dass Parameter 1 ein String ist

Ich habe eine Benutzerdatenbank codiert, die eine statische Methode von find_all aufruft, die eine Abfragemethode aufruft, die wiederum den gesamten Wert einer Datenbank zurückgibt, aber ich habe jedes Mal Probleme damit, wenn ich versuche, sie aufzurufen, erhalte ich diese Fehlermeldung Da mysqli_query () erwartet, dass Parameter 1 mysqli ist, wird die Zeichenfolge in C: \ xampp \ htdocs \ photogallery \ includes \ database.php in Zeile 20 angegeben. Was mache ich? Hier ist das Code-Snippet User.php

require_once("database.php");
class User{

public  static function find_all(){
    global $database;
    $sql= "select * from users";
    $result_set = $database->query($sql);


return $result_set; 
    }
    public  static function find_by_id($id=0){
        global $database;
        $result_set = $database->query("SELECT FROM users where id={$id}");
        $found = $database->fetch_array($result_set);
        return $found;  
    }
}

Database.php

 public function query($sql){
echo $sql;
$this->last_query = $sql;
echo $result = mysqli_query($sql,$this->connection);
 $this->confirm_query($result);
 return $result;


}

 public function confirm_query($result){
    if(!$result){
        die("Database query failed:".mysqli_error());
    }
 }

und die index.php, in der der Code wie folgt aufgerufen wird:

   <?php
require_once("../includes/database.php");
require_once("../includes/user.php");

 $q = User::find_all();


?>

Jedes Mal, wenn der Fehler auftritt, erwartet mysqli_query, dass Parameter 1 mysqli ist. Die Zeichenfolge befindet sich in C: \ xampp \ htdocs \ photogallery \ includes \ database.php in Zeile 20.Helfen Sie mir bitt