как ловить предупреждения для mysqli_connect ()

Как ловить предупреждения для mysqli_connect()

пример

if (!$connection2 = mysqli_connect($host, $username, $password, $name)){
die('MySQL ERROR: ' . mysql_error());
}

ИЛИ ЖЕ

$connection2 = mysqli_connect($host, $username, $password, $name);
if (!$connection2){
die('MySQL ERROR: ' . mysql_error());
}

Итак, я пытаюсь проверить mysqli_connect() метод, указав неверный хост, имя пользователя и т. д. но когда я положил в него неправильные переменные, такие как я положил hostlocal вместо localhost, это дает мне эту ошибку

Предупреждение: mysqli_connect (): php_network_getaddresses: getaddrinfo не удалось:
Такой хост не известен.

Я знаю, что ставлю не тот хост, но хочу уловить ошибки соответствующим образом. Приличное сообщение было бы идеально, как:

К сожалению, введенные вами данные неверны!

Итак, как я могу получить это сообщение вместо предупреждения, спасибо

3

Решение

Для одного, mysql_error() не даст тебе ничего Это часть другой библиотеки, mysql_, который не взаимозаменяем с новым и улучшенным mysqli_, При этом вы можете настроить MySQLi на выдачу исключений, которые затем вы можете перехватить.

Предупреждения будут по-прежнему записываться в журнал, если включено ведение журнала ошибок (как и должно быть!). Но вы можете уловить ошибку и отобразить что-то более удобное для пользователя на странице, если не удается установить соединение. Вы никогда не должны отображать реальные сообщения об ошибках в живом проекте — в разработке это хорошо, но никогда на любой живой среде.

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); // Set MySQLi to throw exceptions

try {
$connection2 = mysqli_connect($host, $username, $password, $name);
} catch (mysqli_sql_exception $e) {
// $e is the exception, you can use it as you wish
die("Unfortunately, the details you entered for connection are incorrect!");
}

Это, однако, будет регистрировать то же предупреждение, что и вы,

php_network_getaddresses: getaddrinfo не удалось: имя или служба неизвестна

хотя это не будет отображаться на странице.

Вы Можно подавить предупреждение (чтобы оно не регистрировалось), добавив @, но я не рекомендую его, если вы явно не реализуете свою собственную обработку ошибок / отчетность. Ошибки должны быть зарегистрированы.

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); // Set MySQLi to throw exceptions

try {
$connection2 = @mysqli_connect($host, $username, $password, $name);
} catch (mysqli_sql_exception $e) {
error_log($e->getMessage()); // Log the error manually
die("Unfortunately, the details you entered for connection are incorrect!");
}
4

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector