Maison > développement back-end > tutoriel php > Pourquoi mes requêtes MySQLi ne génèrent-elles pas d'exceptions et comment puis-je y remédier ?

Pourquoi mes requêtes MySQLi ne génèrent-elles pas d'exceptions et comment puis-je y remédier ?

Patricia Arquette
Libérer: 2025-01-03 19:12:39
original
727 Les gens l'ont consulté

Why Aren't My MySQLi Queries Throwing Exceptions, and How Can I Fix It?

Amélioration de la gestion des erreurs avec les exceptions MySQLi

Dans le but de simplifier la gestion des erreurs, vous rencontrez des difficultés pour convertir les erreurs de requête MySQLi en exceptions .

Problème Description :

Malgré l'utilisation de mysqli_report(MYSQLI_REPORT_STRICT) en conjonction avec des fonctions procédurales MySQLi dans une classe wrapper personnalisée, les échecs de requête n'entraînent toujours ni avertissements ni exceptions, ce qui nécessite des vérifications manuelles de la valeur de retour pour mysqli_query().

Réponse :

Pour résoudre ce problème et forcer MySQLi à lever des exceptions, utilisez la ligne suivante :

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
Copier après la connexion

Explication :

Le comportement par défaut de mysqli_report() est de signaler les deux avertissements et erreurs. Cependant, en définissant l'indicateur MYSQLI_REPORT_ERROR, MySQLi est invité à signaler uniquement les erreurs, ce qui correspond au comportement souhaité en matière de lancement d'exceptions.

Remarque importante :

Évitez d'encapsuler chaque requête dans un bloc try-catch, car il est considéré comme une bonne pratique d'utiliser un gestionnaire d'erreurs à l'échelle du site pour gérer la majorité des erreurs plutôt que de les gérer dans emplacements spécifiques.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal