Перейти к содержимому

ошибка

В этой статье мы сосредоточимся на функции mysqli\_error() в PHP, которая используется для получения сообщения об ошибке из последнего вызова функции MySQLi. Мы предоставим вам обзор функции, принцип её работы и примеры использования.

Введение в функцию mysqli_error()

Функция mysqli\_error() — это встроенная функция PHP, которая возвращает сообщение об ошибке из последней операции MySQLi. Если ошибка не возникла, она возвращает пустую строку. Эта функция полезна, когда вам нужно обрабатывать ошибки в коде MySQLi и предпринимать соответствующие действия на основе полученного сообщения.

Как использовать функцию mysqli_error()

Использование функции mysqli\_error() довольно просто. Вы вызываете её для действительного объекта соединения MySQLi. Вот пример:

Как использовать функцию mysqli_error()?

php
<?php
$mysqli = mysqli_connect("localhost", "username", "password", "database");

$query = "SELECT * FROM my_table";
$result = mysqli_query($mysqli, $query);

if (!$result) {
    $error_msg = mysqli_error($mysqli);
    echo "Failed to execute query. Error message: " . $error_msg;
    exit();
}

mysqli_close($mysqli);
?>

В этом примере мы вызываем функцию mysqli_connect() для подключения к базе данных MySQL. Затем мы выполняем запрос с помощью функции mysqli_query() и сохраняем результат в переменную. Мы проверяем наличие ошибки в запросе с помощью условия !$result. Если ошибка возникла, мы передаём объект соединения в mysqli_error() для получения конкретного сообщения об ошибке, выводим его и завершаем выполнение скрипта.

Примечание: Всегда проверяйте, что mysqli_connect() возвращает действительный объект, прежде чем выполнять запросы. Если подключение не удастся, mysqli_query() вызовет предупреждение PHP.

Расширенное использование

Функцию mysqli\_error() также можно использовать для нескольких соединений. Вот пример:

Расширенное использование PHP mysqli_error()

php
<?php
$mysqli1 = mysqli_connect("localhost", "username", "password", "database1");
$mysqli2 = mysqli_connect("localhost", "username", "password", "database2");

$query = "SELECT * FROM my_table";
$result1 = mysqli_query($mysqli1, $query);
$result2 = mysqli_query($mysqli2, $query);

if (!$result1) {
    $error_msg = mysqli_error($mysqli1);
    echo "Failed to execute query on connection 1. Error message: " . $error_msg;
    exit();
}

if (!$result2) {
    $error_msg = mysqli_error($mysqli2);
    echo "Failed to execute query on connection 2. Error message: " . $error_msg;
    exit();
}

mysqli_close($mysqli1);
mysqli_close($mysqli2);
?>

В этом примере мы устанавливаем два отдельных соединения и выполняем один и тот же запрос в каждом из них. Мы проверяем результат для каждого соединения независимо. Если запрос не выполняется, мы передаём соответствующий объект соединения в mysqli_error() для изоляции и вывода конкретной ошибки.

Примечание о современной обработке ошибок: Для новых приложений на PHP рекомендуется включить обработку ошибок на основе исключений с помощью mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT). Это автоматически вызывает исключения mysqli_sql_exception при ошибках, что во многих случаях снижает необходимость в ручных проверках через mysqli_error().

Заключение

В заключение, функция mysqli\_error() — это практичный инструмент для отладки и обработки ошибок MySQLi. Проверяя корректность соединения и понимая, как получать конкретные сообщения об ошибках, вы можете создавать более надёжные взаимодействия с базой данных.

Практика

Какие существуют способы обработки ошибок в PHP?

Считаете ли это полезным?

Предпросмотр dual-run — сравните с маршрутами Symfony на продакшене.