При попытке установить соединение с базой данных вы столкнулись с проблемой, из-за которой определенное вами пользовательское сообщение об ошибке не было отображается, когда соединение не удалось. Вы также ищете метод подавления сообщений об ошибках с точки зрения пользователя.
Начиная с PHP 8.1, расширение mysqli теперь автоматически генерирует исключения в случае ошибка, что устраняет необходимость ручной обработки ошибок, как это было в более ранних версиях PHP.
Пользовательские сообщения об ошибках, подобные заданному вами, больше не рекомендуются для обработки ошибок. И PDO, и mysqli имеют возможность автоматически выдавать ошибки, как и любая другая команда PHP. Таким образом, проверка ошибок вручную, как вы пытались это сделать с сегментом if (!$conn), устарела.
Чтобы сообщения об ошибках не доходили до пользователя , вам следует использовать опцию конфигурации display_errors, для которой можно установить значение 0, чтобы подавить весь вывод ошибок. Это можно настроить в файле php.ini или непосредственно в вашем PHP-коде:
ini_set('display_errors', 0);
Вместо отображения загадочных сообщений об ошибках рекомендуется предоставить посетителям сайта удобную для пользователя страницу с ошибками. Этого можно добиться, настроив обработчик ошибок, например приведенный ниже, который будет перехватывать все неисправимые ошибки:
set_exception_handler(function ($e)
{
error_log($e);
http_response_code(500);
if (ini_get('display_errors')) {
echo $e;
} else {
echo "<h1>500 Internal Server Error</h1>\nAn internal server error has been occurred.<br>\nPlease try again later.";
}
});
Если вам нужно специально обрабатывать ошибки подключения к базе данных, вы можете использовать отдельный сценарий проверки подключения, заключенный в блок try-catch, отдельный от обычного код подключения.
Для повышения безопасности обновите версию PHP до 8.2 или более поздней, что скрывает пароли базы данных от появления в трассировке стека.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3