Исправляемая фатальная ошибка: аргумент 1, переданный … должен быть экземпляром …, задан логический тип, вызван в … в строке … и определен в … в строке

Я добавил CMS на свой сервер. Мне просто интересно, почему я продолжаю получать эту ошибку на странице, чтобы купить подписку.

Это ошибка;

Catchable fatal error: Argument 1 passed to ObjectArray::fromMySQLiResult() must be an instance of
mysqli_result, boolean given, called in
C:\inetpub\wwwroot\model\FactoryObjects\User.php on line 71
and defined in C:\inetpub\wwwroot\lib\ObjectArray.php on line 284

Строка 71 имеет следующее;

public function getOrders() {
$objectArray = new ObjectArray();
$result = $this->getConnection()->query("SELECT * FROM vip_orders WHERE user_id =
'" . $this->id. "'");
$objectArray->fromMySQLiResult($result); (<Line 71<)
return $objectArray;
}

Строка 284 имеет следующее;

public function fromMySQLiResult(mysqli_result $result) (<Line 284<)
{
$this->clear();
while ($row = $result->fetch_object())
{
$this->add($row);
}
return $this;
}

Пожалуйста, дайте мне знать, если вам нужна какая-либо другая информация, чтобы помочь мне исправить эту ошибку!

Спасибо!

(Примечание: для тех, кто помогает, не могли бы вы объяснить, в чем именно заключается проблема? Например, что это за функция и почему она не работает, спасибо.)

0

Решение

Ваше определение fromMySQLiResult(mysqli_result $result) утверждает, что функция требует параметр типа mysqli_result, Тем не менее, вы передаете результат MySQLi :: запрос () который также может иметь тип boolean в случае сбоя.

Чтобы предотвратить ошибку, убедитесь, что $result на самом деле результат запроса похож на пример в документации:

if ($result) {
$objectArray->fromMySQLiResult($result);
} else {
// handle error
}
0

Другие решения

Других решений пока нет …