запрос php mysqli ожидает, что параметр 1 будет строкой

Я кодировал пользовательскую базу данных, которая вызывает статический метод find_all, который вызывает метод запроса, который, в свою очередь, возвращает все значения базы данных, но я сталкиваюсь с трудностями при этом каждый раз, когда я пытаюсь вызвать его, это выдает мне эту ошибку как mysqli_query () ожидает, что параметр 1 будет mysqli, строка указана в C: \ xampp \ htdocs \ photogallery \ includes \ database.php в строке 20. Что мне делать? Вот фрагмент кода 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());
    }
 }

и index.php, где код вызывается следующим образом:

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

 $q = User::find_all();


?>

Каждый раз, когда возникает ошибка, mysqli_query ожидает, что параметр 1 будет mysqli, строка, указанная в C: \ xampp \ htdocs \ photogallery \ includes \ database.php в строке 20. Помогите мне, пожалуйста ??