Intereting Posts
Как скомпилировать php для поддержки webp? сообщение на стене страницы поклонника как страница с другого сайта PHP PHP Decrypting AES возвращает заполнение перед строкой? Когда использовать подготовленные запросы PDO. Ошибка mysql_real_escape Foreach loop (или, может быть, может быть?) – хотите вернуть только одну запись в зависимости от страницы Каков недостаток mt_rand? Функция PHP password_hash солевой длины 21 или 22? Вытягивание сообщений с другого сайта WordPress Как использовать функции AMFPHP из приложения .NET WPF? Вставить несколько записей сразу с помощью Laravel PHP – Как подсчитать строки кода в приложении Вычтите одну секунду из заданного времени Laravel прикованный / связанный блок выбора не смог загрузить статус ресурса. Внутренняя ошибка сервера. Сброс нового пароля, токен стал пустым Слияние по значению массива (и выполнение расчетов с другими ключами)

Улавливание ошибки подключения mysql

Итак, у меня есть простой код:

try{ $mysqli = new mysqli($sql_login['host'], $sql_login['user'], $sql_login['password'] , $sql_login['database'], $sql_login['port'] ); if($mysqli->connect_errno){ throw new Exception("Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error); } } catch (Exception $e) { echo 'Exception: ', $e->getMessage(), "\n"; } 

проблема в том, что php возвращает ошибку, а также исключение. Есть что-то вроде в java с броском и бросками?

Solutions Collecting From Web of "Улавливание ошибки подключения mysql"

Вы можете начать с установки собственной обработки ошибок. Один, который превращает ошибки PHP в исключение. Сделайте это в начале вашего скрипта. Что-то нравится:

 /* |-------------------------------------------------------------------------- | Alternative error handler |-------------------------------------------------------------------------- | | See: http://php.net/manual/en/function.set-error-handler.php | */ function my_error_handler($errno, $errstr, $errfile, $errline) { if (!(error_reporting() & $errno)) { // This error code is not included in error_reporting return; } throw new ErrorException( $errstr, $errno, 0, $errfile, $errline ); } ini_set('display_errors', FALSE); set_error_handler("my_error_handler"); 

Теперь вы можете использовать исключения как основной механизм обработки ошибок. Все, что вам нужно сейчас, – это поймать исключения в правильном месте в вашем скрипте и самостоятельно отображать ошибки.

Вы можете расширить этот механизм, включив в него также assert-handling:

 /* |-------------------------------------------------------------------------- | Assert handling |-------------------------------------------------------------------------- | | See: http://php.net/manual/en/function.assert.php | */ function my_assert_handler($file, $line, $code) { throw new Exception( "assertion failed @$file::$line($code)" ); } assert_options(ASSERT_ACTIVE, 1); assert_options(ASSERT_WARNING, 0); assert_options(ASSERT_BAIL, 0); assert_options(ASSERT_QUIET_EVAL, 0); assert_options(ASSERT_CALLBACK, 'my_assert_handler'); 

И просто признайте, что PHP не является Java или C ++. Это непоследовательный беспорядок.

Вы можете использовать PHP set_error_handler() .

Поместите знак @ перед вызовом для подключения. Это приведет к подавлению сообщения об ошибке.