«Попытка получить свойство не-объекта в» – пользовательский класс mysqli

Я пытаюсь написать собственный класс для MySQLi, но при использовании num_rows я все время получаю сообщение об ошибке «Попытка получить свойство не-объекта в». Может ли кто-нибудь помочь?

 class db { private $host = "***"; private $user = "***"; private $pass = "***"; private $database; private $connection; private $result; public $sql; function __construct($database) { if (!empty($database)) $this->database = $database; $this->connection = new mysqli($this->host,$this->user,$this->pass,$this->database); return $this->connection; } public function fetchRowNum($sql) { if (!empty($sql)) { $this->sql = $sql; return $this->connection->query($sql)->num_rows; } else { throw new Exception("Error fetching row"); } } } 

mysqli_query () не всегда возвращает объект mysqli_result , он также может возвращать TRUE и FALSE что приведет к ошибке, которую вы получаете.

Сохраните возвращаемое значение query() и проверьте, является ли оно TRUE или FALSE прежде чем пытаться получить к нему доступ в качестве объекта и получить свойство num_rows .

Из руководства по mysqli::query() :

Возвращает FALSE при ошибке. Для успешных запросов SELECT , SHOW , DESCRIBE или EXPLAIN mysqli_query() вернет объект mysqli_result . Для других успешных запросов mysqli_query() вернет TRUE .