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

Я кодировал базу данных User, которая вызывает статический метод 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(); ?> в  <?php require_once("../includes/database.php"); require_once("../includes/user.php"); $q = User::find_all(); ?> в  <?php require_once("../includes/database.php"); require_once("../includes/user.php"); $q = User::find_all(); ?> 

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

При использовании mysqli в процедурном стиле первым аргументом mysqli_query должен быть объект соединения

Из официальной документации :

 mixed mysqli_query ( mysqli $link , string $query [, int $resultmode = MYSQLI_STORE_RESULT ] ) 

Таким образом, вам нужно изменить порядок аргументов, $this->connection идет первым, а $sql вторым:

 $result = mysqli_query($this->connection, $sql); 

Просто прочитайте документы:
смешанный

 mysqli_query ( mysqli $link , string $query [, int $resultmode = MYSQLI_STORE_RESULT ] ) 

Вы должны изменить свои аргументы на

mysqli_query($this->connection, $sql)