Al intentar establecer una conexión a la base de datos, encontró un problema donde el mensaje de error personalizado que definió no se estaba aparece cuando falla la conexión. También está buscando un método para suprimir los mensajes de error desde la vista del usuario.
A partir de PHP 8.1, la extensión mysqli ahora genera automáticamente excepciones en caso de error, eliminando la necesidad de manejo manual de errores como se hacía en versiones anteriores de PHP.
Mensajes de error personalizados, como el uno que usted definió, ya no se recomiendan para el manejo de errores. Tanto PDO como mysqli tienen la capacidad de generar errores automáticamente, como cualquier otro comando PHP. Por lo tanto, la comprobación manual de errores, como intentó hacer con el segmento if (!$conn), está obsoleta.
Para evitar que los mensajes de error lleguen al usuario , debe utilizar la opción de configuración display_errors, que se puede establecer en 0 para suprimir todas las salidas de error. Esto se puede configurar en el archivo php.ini o directamente en su código PHP:
ini_set('display_errors', 0);
En lugar de mostrar mensajes de error crípticos, es recomendable presentar una página de error fácil de usar a los visitantes del sitio. Esto se puede lograr configurando un controlador de errores, como el siguiente, que detectará todos los errores irrecuperables:
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.";
}
});
Si necesita manejar específicamente los errores de conexión de la base de datos, puede usar un script de prueba de conexión separado envuelto en un bloque try-catch, separado de su habitual código de conexión.
Para mayor seguridad, actualice su versión de PHP a 8.2 o posterior, lo que impide que las contraseñas de la base de datos aparezcan en el seguimiento de la pila.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3