Maison > développement back-end > tutoriel php > Pourquoi les requêtes MySQLi échouent-elles parfois silencieusement, nécessitant des vérifications explicites de fausses valeurs de retour ?

Pourquoi les requêtes MySQLi échouent-elles parfois silencieusement, nécessitant des vérifications explicites de fausses valeurs de retour ?

Patricia Arquette
Libérer: 2024-12-30 10:19:09
original
159 Les gens l'ont consulté

Why Do MySQLi Queries Sometimes Fail Silently, Requiring Explicit False Return Value Checks?

Gestion des erreurs de requête MySQLi comme exceptions

Introduction

Dans MySQLi, les erreurs de requête sont généralement signalés sous forme d’avertissements ou de messages d’erreur. Cependant, les développeurs préféreront peut-être convertir ces erreurs en exceptions pour une meilleure gestion des erreurs. Cet article examine le processus de transformation des erreurs de requête MySQLi en exceptions et aborde un problème courant où les échecs de requête renvoient false sans déclencher d'avertissements ou d'exceptions.

Problème

Lors de l'exécution de MySQLi requêtes, les développeurs vérifient souvent si mysqli_query() renvoie false pour détecter les erreurs de requête. Cependant, cette approche peut s'avérer peu pratique et ne détecte pas toujours les erreurs inattendues.

Ancien code

$result = mysqli_query($DBlink, $SQL);
if ($result === false) {
    throw new MySQLiQueryException($SQL, mysqli_error($DBlink), mysqli_errno($DBlink));
}
Copier après la connexion

Question

Pourquoi dans certains cas, ni avertissements ni exceptions ne sont émis lorsqu'une requête échoue, obligeant les développeurs à vérifier explicitement les fausses valeurs de retour de mysqli_query()?

Réponse

Pour activer les exceptions pour les erreurs de requête MySQLi, vous devez définir correctement le niveau de rapport d'erreurs à l'aide de la fonction mysqli_report(). L'extrait de code suivant illustre l'utilisation appropriée :

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

En définissant le niveau de rapport d'erreurs sur MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT, MySQLi commencera à générer des exceptions pour toutes les erreurs et erreurs strictes, y compris les échecs de requête.

Attention

Bien que l'utilisation d'exceptions pour la gestion des erreurs soit généralement recommandée, elle est importante pour éviter une utilisation excessive de blocs try-catch. La gestion des erreurs doit être centralisée via un gestionnaire d'erreurs commun pour minimiser la surcharge du code et garantir un rapport d'erreurs cohérent.

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