과거에는 PHP의 mysql 확장 기능을 사용하려면 수동 오류 처리가 필요했습니다. 그러나 PHP 8.1에 도입된 mysqli 확장 기능은 이제 오류 발생 시 자동으로 예외를 트리거하므로 수동으로 오류를 감지할 필요가 없습니다.
귀하의 코드에는 사용자 정의 오류 메시지를 출력하려고 시도하는 if(!$conn) 블록이 포함되어 있습니다. 이 접근 방식은 구식입니다. mysqli는 본질적으로 오류를 발생시키며 자동으로 처리되어야 합니다.
사이트 방문자의 오류 메시지를 숨기려면 display_errors 구성을 사용해야 합니다. 옵션. 0으로 설정하면 PHP에서 오류가 표시되는 것을 방지할 수 있습니다. ini_set('display_errors', 0)을 사용하여 php.ini 또는 PHP 코드에서 이 옵션을 설정할 수 있습니다.
사용자에게 시스템 오류를 숨기는 것이 중요하지만 사용자에게 친숙한 오류 페이지를 표시하는 것이 좋습니다. 이는 다음과 같은 오류 처리기를 사용하여 수행할 수 있습니다.
<code class="php">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> An internal server error has occurred.<br> Please try again later."; } });</code>
이 처리기는 오류를 기록하고, HTTP 500 상태 코드를 설정하고, display_errors가 0으로 설정된 경우 일반 오류 메시지를 표시합니다.
특정 시나리오에서는 연결 오류를 명시적으로 처리해야 할 수도 있습니다. 이는 try-catch 블록을 사용하여 수행할 수 있습니다. 그러나 이러한 처리는 특정 오류 시나리오에 대체 조치가 필요한 경우로 제한되어야 합니다.
스택 추적을 수행하려면 스택 추적에서 데이터베이스 비밀번호를 숨기는 PHP 8.2 이상으로 업그레이드하는 것이 좋습니다.
위 내용은 mysqli_connect가 실패할 때 내 사용자 정의 PHP 오류 메시지가 표시되지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!