Если вы разработчик PHP, возможно, вы столкнулись с неприятным сообщением об ошибке: «Вызов функции-члена get_results() при значении null». Эта ошибка обычно возникает, когда вы пытаетесь вызвать метод для переменной, которая имеет значение NULL или не является объектом. В этом сообщении блога мы рассмотрим распространенные причины этой ошибки и предоставим несколько способов ее устранения. Итак, хватайте чашечку кофе и приступайте!
Понимание ошибки.
Ошибка «Вызов функции-члена get_results() при значении null» — это ошибка времени выполнения, возникающая при попытке вызвать метод get_results()для переменной, которая нулевой. В PHP эта ошибка обычно возникает при работе с запросами к базе данных с использованием популярных расширений MySQLi или PDO.
Распространенные причины:
- Проблемы с подключением к базе данных. Если соединение с базой данных не удалось или не установлено должным образом, переменная, содержащая объект базы данных, может быть нулевой, что приводит к ошибке.
- Ошибки выполнения запроса. Если запрос не может быть выполнен из-за синтаксических ошибок или других проблем, результирующая переменная может иметь значение null, что приводит к ошибке при попытке вызвать метод
get_results().
Методы устранения ошибки:
-
Проверить соединение с базой данных:
$db = new mysqli('localhost', 'username', 'password', 'database'); if ($db->connect_error) { die('Connection failed: ' . $db->connect_error); }Перед выполнением любых запросов убедитесь, что соединение с базой данных установлено правильно. Если соединение не установлено, переменная
$dbбудет равна нулю. -
Проверка выполнения запроса:
$query = "SELECT * FROM users"; $result = $db->query($query); if ($result === false) { die('Query execution failed: ' . $db->error); }Проверьте успешность выполнения запроса, проверив возвращаемое значение метода
query(). Если он возвращает false, переменная$resultбудет равна нулю. -
Использовать подготовленные операторы:
$query = "SELECT * FROM users WHERE id = ?"; $stmt = $db->prepare($query); if ($stmt === false) { die('Prepared statement preparation failed: ' . $db->error); }При использовании подготовленных операторов убедитесь, что оператор подготовлен успешно. Если подготовка не удалась, переменная
$stmtбудет равна нулю. -
Проверка существования объекта:
if ($result !== null) { // Use the $result object } else { // Handle the error }Прежде чем вызывать какие-либо методы объекта, проверьте его существование, чтобы избежать ошибки «Вызов функции-члена при нулевом значении».
Ошибка «Вызов функции-члена get_results() при значении null» в PHP может расстраивать, но с помощью методов, описанных в этой статье, вы сможете устранить неполадки и эффективно решить эту проблему. Всегда проверяйте правильность подключения к базе данных и проверяйте выполнение запросов или подготовленных операторов. Следуя этим рекомендациям, вы сможете написать надежный и безошибочный PHP-код.