Dans le passé, l'extension mysql de PHP nécessitait une gestion manuelle des erreurs. Cependant, l'extension mysqli introduite dans PHP 8.1 déclenche désormais automatiquement des exceptions en cas d'erreurs, éliminant ainsi le besoin d'une détection manuelle des erreurs.
Votre le code inclut un bloc if ($ conn) qui tente d'afficher un message d'erreur personnalisé. Cette approche est dépassée. mysqli génère automatiquement des erreurs, qui doivent être traitées automatiquement.
Pour masquer les messages d'erreur des visiteurs du site, vous devez utiliser la configuration display_errors option. Le définir sur 0 empêchera PHP d’afficher des erreurs. Vous pouvez définir cette option dans php.ini ou dans le code PHP en utilisant ini_set('display_errors', 0).
Bien qu'il soit essentiel de masquer les erreurs système aux utilisateurs, vous souhaiterez peut-être afficher une page d'erreur conviviale. Ceci peut être réalisé en utilisant un gestionnaire d'erreurs tel que :
<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>
Ce gestionnaire enregistre l'erreur, définit un code d'état HTTP 500 et affiche un message d'erreur générique si display_errors est défini sur 0.
Dans certains scénarios, vous devrez peut-être gérer explicitement les erreurs de connexion. Cela peut être fait en utilisant un bloc try-catch. Toutefois, ce traitement doit être limité aux cas où des scénarios d'erreur spécifiques nécessitent des actions alternatives.
Si vous êtes préoccupé par l'apparition d'informations sensibles dans la trace de la pile, envisagez de passer à PHP 8.2 ou version ultérieure, qui masque les mots de passe de la base de données de la trace de la pile.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!