La consulta php mysqli espera que el parámetro 1 sea una cadena

Estaba codificando una base de datos de usuario que llama a un método estático de find_all que llama a un método de consulta que a su vez devuelve todo el valor de una base de datos, pero encuentro problemas para hacerlo cada vez que intento llamarlo, me da este error como mysqli_query () espera que el parámetro 1 sea mysqli, cadena dada en C: \ xampp \ htdocs \ photogallery \ incluye \ database.php en la línea 20. ¿Qué debo hacer? Aquí está el fragmento 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());
    }
 }

y el index.php donde el código se llama de la siguiente manera:

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

 $q = User::find_all();


?>

Cada vez que se produce el error cuando mysqli_query espera que el parámetro 1 sea mysqli, la cadena dada en C: \ xampp \ htdocs \ photogallery \ incluye \ database.php en la línea 20. ¿Me ayudan por favor?

Respuestas a la pregunta(2)

Su respuesta a la pregunta