ошибка
В этой статье мы сосредоточимся на функции mysqli\_error() в PHP, которая используется для получения сообщения об ошибке из последнего вызова функции MySQLi. Мы предоставим вам обзор функции, принцип её работы и примеры использования.
Введение в функцию mysqli_error()
Функция mysqli\_error() — это встроенная функция PHP, которая возвращает сообщение об ошибке из последней операции MySQLi. Если ошибка не возникла, она возвращает пустую строку. Эта функция полезна, когда вам нужно обрабатывать ошибки в коде MySQLi и предпринимать соответствующие действия на основе полученного сообщения.
Как использовать функцию mysqli_error()
Использование функции mysqli\_error() довольно просто. Вы вызываете её для действительного объекта соединения MySQLi. Вот пример:
Как использовать функцию mysqli_error()?
<?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
$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?