oujood.com

La Fonction mysqli_error_list() en PHP pour Gérer les Erreurs MySQL

Comment améliorer la fiabilité de vos applications PHP et MySQL en utilisant mysqli_error_list() pour identifier et résoudre rapidement les problèmes d'accès à la base de données.

La fonction mysqli_error_list() en PHP

PHP Version: 5.4 +

La fonction mysqli_error_list() est une fonction intégrée en PHP qui permet de récupérer la liste des erreurs associées à la dernière opération MySQL exécutée avec l'extension MySQLi.

Définition

La fonction mysqli_error_list() renvoie un tableau contenant les informations sur les erreurs de la dernière requête MySQL exécutée avec l'extension MySQLi.

Syntaxes

Syntaxe Orientée Objet

$mysqli = new mysqli("localhost", "utilisateur", "motdepasse", "ma_base_de_données");
if ($mysqli->connect_error) {
    die("Erreur de connexion : " . $mysqli->connect_error);
}

$query = "SELECT * FROM table_inexistante";
$result = $mysqli->query($query);
if (!$result) {
    $error_list = $mysqli->error_list;
    foreach ($error_list as $error) {
        echo "Erreur : " . $error['error'] . " (code " . $error['errno'] . ")";
		echo "
"; } } $mysqli->close();

Syntaxe Procédurale

$mysqli = mysqli_connect("localhost", "utilisateur", "motdepasse", "ma_base_de_données");
if (!$mysqli) {
    die("Erreur de connexion : " . mysqli_connect_error());
}

$query = "SELECT * FROM table_inexistante";
$result = mysqli_query($mysqli, $query);
if (!$result) {
    $error_list = mysqli_error_list($mysqli);
    foreach ($error_list as $error) {
        echo "Erreur : " . $error['error'] . " (code " . $error['errno'] . ")
"; } } mysqli_close($mysqli);

Valeurs Possibles et Paramètres

La fonction mysqli_error_list() ne prend pas de paramètres et renvoie un tableau d'erreurs sous la forme d'un tableau associatif contenant les clés suivantes :

  • errno : Le code d'erreur MySQL.
  • sqlstate : Le SQLSTATE associé à l'erreur.
  • error : Le message d'erreur MySQL.

Exemples Pratiques

Voici quelques exemples pratiques d'utilisation de la fonction mysqli_error_list() :

Gestion d'erreurs lors de la requête

Si une requête échoue, vous pouvez utiliser mysqli_error_list() pour obtenir des détails sur l'erreur et la traiter de manière appropriée.

Exemple :       Copier le code

<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Gestion d'Erreurs de Requête avec mysqli_error_list()</title>
</head>
<body>
<h1>Gestion d'Erreurs de Requête avec <code>mysqli_error_list()</code></h1>

<?php
$mysqli = new mysqli("localhost", "utilisateur", "motdepasse", "ma_base_de_données");
if ($mysqli->connect_error) {
    die("Erreur de connexion : " . $mysqli->connect_error);
}

$query = "SELECT * FROM table_inexistante";
$result = $mysqli->query($query);
if (!$result) {
    $error_list = $mysqli->error_list;
    foreach ($error_list as $error) {
        echo "<p>Erreur : " . $error['error'] . " (code " . $error['errno'] . ")</p>";
    }
}

$mysqli->close();
?>
</body>
</html>

Ce code établit une connexion à la base de données, tente d'exécuter une requête SELECT sur une table inexistante, puis utilise mysqli_error_list() pour afficher les informations sur l'erreur rencontrée, telles que le message d'erreur et le code d'erreur MySQL.

Journalisation d'erreurs

En enregistrant les erreurs dans un journal, vous pouvez collecter des informations utiles pour le débogage et l'amélioration de vos applications.

Exemple :       Copier le code

<?php

// Connexion à la base de données
$mysqli = new mysqli("localhost", "utilisateur", "motdepasse", "ma_base_de_données");
if ($mysqli->connect_error) {
    die("Erreur de connexion : " . $mysqli->connect_error);
}

// Exemple de requête qui échoue
$query = "SELECT * FROM table_inexistante";
$result = $mysqli->query($query);
if (!$result) {
    $error_list = $mysqli->error_list;
    
    // Ouverture du fichier de journalisation en mode ajout
    $logFile = fopen("error_log.txt", "a");
    
    // Formatage et écriture des erreurs dans le fichier de journal
    foreach ($error_list as $error) {
        $errorMsg = "[" . date("Y-m-d H:i:s") . "] Erreur : " . $error['error'] . " (code " . $error['errno'] . ")" . PHP_EOL;
        fwrite($logFile, $errorMsg);
    }
    
    // Fermeture du fichier de journal
    fclose($logFile);
    
    echo "Une erreur est survenue. Les détails ont été enregistrés dans le fichier de journal.";
}

$mysqli->close();
?>

Dans cet exemple, les étapes clés sont les suivantes :

  • 1.La connexion à la base de données est établie.
  • 2. Une requête SQL est exécutée, et si elle échoue, les erreurs sont récupérées à l'aide de mysqli_error_list().
  • 3. Un fichier de journalisation (error_log.txt) est ouvert en mode ajout (a).
  • 4.Les détails des erreurs sont formatés avec la date et l'heure, puis écrits dans le fichier de journal.
  • 5. Le fichier de journal est fermé.

Assurez-vous de créer le fichier error_log.txt dans le même répertoire que votre script PHP pour que les erreurs soient correctement enregistrées. Ce script enregistre les erreurs dans le fichier de journal chaque fois qu'une requête échoue, ce qui peut être utile pour le débogage et la maintenance.

Astuces et Conseils

  • Toujours vérifier le résultat de la requête avant d'appeler mysqli_error_list() pour éviter des erreurs inutiles.
  • Utilisez les informations fournies par mysqli_error_list() pour rendre vos messages d'erreur plus informatifs pour les développeurs.
  • La gestion appropriée des erreurs améliore la robustesse et la fiabilité de vos applications.

Conclusion

La fonction mysqli_error_list() en PHP est un outil puissant pour gérer les erreurs dans vos applications MySQL. En comprenant comment l'utiliser efficacement, vous pouvez améliorer la qualité et la maintenance de vos projets.




Voir aussi nos tutoriel :

Comment se connecter avec un compte Google en utilisant PHP et MySQLi.

Vous essayez d'ajouter une fonctionnalité de connexion à un compte social à votre application web, comme la connexion avec un compte Gmail. Voici un tutoriel rapide

fonction strpbrk, strpbrk

Recherche une chaîne de caractères dans un ensemble de caractères

Espaces de noms XML

Espaces de noms XML