Устранение ошибки «Вызов функции-члена get_results() при значении Null» в PHP

Если вы разработчик PHP, возможно, вы столкнулись с неприятным сообщением об ошибке: «Вызов функции-члена get_results() при значении null». Эта ошибка обычно возникает, когда вы пытаетесь вызвать метод для переменной, которая имеет значение NULL или не является объектом. В этом сообщении блога мы рассмотрим распространенные причины этой ошибки и предоставим несколько способов ее устранения. Итак, хватайте чашечку кофе и приступайте!

Понимание ошибки.
Ошибка «Вызов функции-члена get_results() при значении null» — это ошибка времени выполнения, возникающая при попытке вызвать метод get_results()для переменной, которая нулевой. В PHP эта ошибка обычно возникает при работе с запросами к базе данных с использованием популярных расширений MySQLi или PDO.

Распространенные причины:

  1. Проблемы с подключением к базе данных. Если соединение с базой данных не удалось или не установлено должным образом, переменная, содержащая объект базы данных, может быть нулевой, что приводит к ошибке.
  2. Ошибки выполнения запроса. Если запрос не может быть выполнен из-за синтаксических ошибок или других проблем, результирующая переменная может иметь значение null, что приводит к ошибке при попытке вызвать метод get_results().

Методы устранения ошибки:

  1. Проверить соединение с базой данных:

    $db = new mysqli('localhost', 'username', 'password', 'database');
    if ($db->connect_error) {
       die('Connection failed: ' . $db->connect_error);
    }

    Перед выполнением любых запросов убедитесь, что соединение с базой данных установлено правильно. Если соединение не установлено, переменная $dbбудет равна нулю.

  2. Проверка выполнения запроса:

    $query = "SELECT * FROM users";
    $result = $db->query($query);
    if ($result === false) {
       die('Query execution failed: ' . $db->error);
    }

    Проверьте успешность выполнения запроса, проверив возвращаемое значение метода query(). Если он возвращает false, переменная $resultбудет равна нулю.

  3. Использовать подготовленные операторы:

    $query = "SELECT * FROM users WHERE id = ?";
    $stmt = $db->prepare($query);
    if ($stmt === false) {
       die('Prepared statement preparation failed: ' . $db->error);
    }

    При использовании подготовленных операторов убедитесь, что оператор подготовлен успешно. Если подготовка не удалась, переменная $stmtбудет равна нулю.

  4. Проверка существования объекта:

    if ($result !== null) {
       // Use the $result object
    } else {
       // Handle the error
    }

    Прежде чем вызывать какие-либо методы объекта, проверьте его существование, чтобы избежать ошибки «Вызов функции-члена при нулевом значении».

Ошибка «Вызов функции-члена get_results() при значении null» в PHP может расстраивать, но с помощью методов, описанных в этой статье, вы сможете устранить неполадки и эффективно решить эту проблему. Всегда проверяйте правильность подключения к базе данных и проверяйте выполнение запросов или подготовленных операторов. Следуя этим рекомендациям, вы сможете написать надежный и безошибочный PHP-код.