«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Почему `mysqli_query()` возвращает «Предупреждение: mysqli_query() ожидает, что параметр 1 будет MySQLi, задано значение null»?

Почему `mysqli_query()` возвращает «Предупреждение: mysqli_query() ожидает, что параметр 1 будет MySQLi, задано значение null»?

Опубликовано 22 декабря 2024 г.
Просматривать:215

Why Does `mysqli_query()` Return

Понимание «Предупреждение: mysqli_query() ожидает, что параметр 1 будет MySQLi, указано значение null» Ошибка

При попытке создать собственный CMS, вы столкнулись со следующим сообщением об ошибке:

"Предупреждение: mysqli_query() ожидает, что параметр 1 будет быть MySQLi, указано значение null в "

Причина ошибки

Эта ошибка указывает на то, что функция mysqli_query(), выполняющая запросы SQL, ожидает объект MySQLi в качестве своего первый параметр. Однако в вашей функции getPosts() вы передаете нулевое значение вместо объекта MySQLi.

Решение

Решение этой проблемы состоит в том, чтобы убедиться, что Объект $con MySQLi находится в области действия функции getPosts(). В вашем коде $con определен в глобальной области видимости, но он недоступен внутри функции.

Передача объекта MySQLi как зависимости

Один способ адрес: это передача объекта MySQLi функции getPosts() в качестве зависимости. Вот как это можно сделать:

function getPosts(mysqli $con) {
    // etc
}

Сделав объект MySQLi параметром функции, вы гарантируете, что он доступен в области действия функции и может использоваться функцией mysqli_query().

Дополнительные рекомендации

Помимо решения проблемы с областью действия рассмотрите возможность реализации следующих рекомендации:

  • Обрабатывайте ошибки и сбои соединения, используя mysqli_report() для установки параметров отчета об ошибках.
  • Останавливайте выполнение скрипта, если возникает ошибка соединения или ошибка запроса, используя mysqli::error ().

Вот пример реализации этих рекомендации:

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); // throw exceptions
$con=mysqli_connect("localhost","xxxx","xxxx","xxxxx");

if (!$con) {
    throw new Exception("Failed to connect to MySQL: " . mysqli_connect_error());
}

getPosts($con);

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

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3