Maison > développement back-end > tutoriel php > Comment puis-je gérer les erreurs « mysqli_query() » de manière plus sécurisée et efficace qu'en utilisant « or die() » ?

Comment puis-je gérer les erreurs « mysqli_query() » de manière plus sécurisée et efficace qu'en utilisant « or die() » ?

Mary-Kate Olsen
Libérer: 2024-12-24 10:38:14
original
781 Les gens l'ont consulté

How Can I Handle `mysqli_query()` Errors More Securely and Effectively Than Using `or die()`?

mysqli_query() et gestion des erreurs

Lors de l'exécution de requêtes à l'aide de la fonction mysqli_query(), la syntaxe or die() est couramment utilisée pour gérer les erreurs. Cependant, cette approche présente plusieurs inconvénients.

Inconvénients de or die() :

  • Expose les composants internes du système aux attaquants potentiels.
  • Confond utilisateurs avec des messages d'erreur incompréhensibles.
  • Termine brusquement le script, laissant les utilisateurs bloqué.
  • Tue le script sans fournir d'informations sur l'emplacement de l'erreur.

Alternatives à or die() :

Pour éviter ces problèmes, envisagez les alternatives suivantes :

Exception Gestion :

Configurez mysqli pour lever des exceptions sur les erreurs en ajoutant la ligne suivante à votre code de connexion :

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

Avec ce paramètre, vous pouvez exécuter des requêtes sans vérification d'erreur, et toutes les erreurs seront générées comme exceptions :

$result = mysqli_query($link, $sql);
Copier après la connexion

Journalisation des erreurs personnalisée Fonction :

Dans l'exemple fourni, vous souhaitiez enregistrer les erreurs dans une autre table. Vous pouvez créer une fonction personnalisée à cet effet :

function log_mysqli_error($query, $error) {
  // Perform logging logic here
}
Copier après la connexion

Ensuite, utilisez cette fonction dans l'exécution de votre requête :

$update_result = mysqli_query($link, $sql_update_login) or log_mysqli_error($sql_update_login, mysqli_error($link));
Copier après la connexion

En utilisant ces alternatives, vous pouvez gérer les erreurs mysqli plus efficacement et maintenir une base de code plus propre et plus sûre.

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