A consulta php mysqli espera que o parâmetro 1 seja string

Eu estava codificando um banco de dados do usuário que chama um método estático de find_all, que chama um método de consulta que, por sua vez, retorna todo o valor de um banco de dados, mas estou encontrando problemas ao fazê-lo sempre que tento chamá-lo, isso me dá esses erros. mysqli_query () espera que o parâmetro 1 seja mysqli, string fornecida em C: \ xampp \ htdocs \ photogallery \ includes \ database.php na linha 20. O que devo fazer? Aqui está o trecho de código 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());
    }
 }

e o index.php em que o código é chamado da seguinte maneira:

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

 $q = User::find_all();


?>

Cada vez que o erro ocorre, o mysqli_query espera que o parâmetro 1 seja mysqli, string fornecida em C: \ xampp \ htdocs \ photogallery \ includes \ database.php na linha 20.Me ajude, por favor?

questionAnswers(2)

yourAnswerToTheQuestion