Position actuelle: Accueil> Derniers articles> Comment utiliser MySQLI :: $ Errno dans un gestionnaire d'erreurs personnalisé pour gérer les erreurs MySQL?

Comment utiliser MySQLI :: $ Errno dans un gestionnaire d'erreurs personnalisé pour gérer les erreurs MySQL?

M66 2025-07-18

Dans PHP, nous devons souvent interagir avec la base de données, en particulier lorsque vous utilisez des bases de données MySQL, les extensions MySQLI sont un choix très courant. Cependant, lorsque nous rencontrons des erreurs de connexion de base de données ou des erreurs de requête, il doit y avoir un moyen approprié de gérer ces erreurs. MySQLI :: $ Errno est une propriété importante dans la classe MySQLI , qui renvoie le code d'erreur lié à la dernière erreur MySQL. Cet article expliquera comment utiliser mysqli :: $ errno pour gérer les erreurs MySQL dans un gestionnaire d'erreurs personnalisé.

1. Géréateur d'erreur personnalisé

PHP fournit la fonction set_error_handler () pour définir un gestionnaire d'erreur personnalisé. Nous pouvons attraper et gérer les erreurs via cette méthode. Lorsque vous utilisez MySQLI pour connecter et interroger la base de données MySQL, si une erreur se produit, MySQLI :: $ ERRNO peut nous aider à déterminer le type d'erreur et à effectuer une gestion spécifique d'erreur en fonction de celle-ci.

2. Utilisez mysqli :: $ errno pour attraper les erreurs mysql

mysqli :: $ errno renvoie une valeur entière indiquant le code d'erreur de l'opération MySQL précédente. Si aucune erreur ne se produit, il renvoie 0 . Si une autre valeur est renvoyée, une erreur s'est produite. Combiné avec un gestionnaire d'erreurs personnalisé, nous pouvons classer et traiter en fonction du code d'erreur, tel que: journalisation, affichage des messages d'erreur ou réessayer les opérations.

3. Exemple de code

Voici un exemple d'utilisation de mysqli :: $ errno pour gérer les erreurs MySQL. Nous allons configurer un gestionnaire d'erreurs personnalisé et utiliser MySqli :: $ Errno dans les connexions et les requêtes de base de données pour vérifier les erreurs.

 <?php
// Configuration d&#39;un gestionnaire d&#39;erreurs personnalisé
set_error_handler("customErrorHandler");

function customErrorHandler($errno, $errstr, $errfile, $errline) {
    // examiner MySQL Code d&#39;erreur
    if ($errno == E_USER_WARNING) {
        echo "MySQL Error [$errno]: $errstr\n";
    } else {
        echo "Error [$errno]: $errstr in $errfile on line $errline\n";
    }
}

// Créer une connexion de base de données
$mysqli = new mysqli("localhost", "username", "password", "database_name");

// examiner连接是否成功
if ($mysqli->connect_errno) {
    trigger_error("Failed to connect to MySQL: " . $mysqli->connect_error, E_USER_WARNING);
    exit();
}

// Exécuter une requête
$query = "SELECT * FROM non_existent_table";
$result = $mysqli->query($query);

// examiner查询是否成功
if (!$result) {
    trigger_error("MySQL Query Error: " . $mysqli->error, E_USER_WARNING);
}

// Fermer la connexion
$mysqli->close();
?>

4. Analyse de code

  • Dans le code ci-dessus, nous définissons d'abord un gestionnaire d'erreur personnalisé nommé CustomErrorHandler à l'aide de la fonction set_error_handler () .

  • Si la connexion MySQL échoue (si le serveur de base de données n'est pas disponible), le code d'erreur de connexion sera obtenu via MySQLI-> Connect_errno et le message d'erreur sera transmis au gestionnaire d'erreur personnalisé via Trigger_error () .

  • De même, si l'exécution de la requête échoue, nous pouvons obtenir le message d'erreur via MySqli-> Erreur et déclencher un avertissement ( E_USER_WARNING ), qui est capturé par le gestionnaire d'erreurs personnalisé.

  • Un gestionnaire d'erreurs personnalisé imprimera les codes d'erreur et les informations pour aider les développeurs à localiser les problèmes.

5. Gérer les codes d'erreur MySQL

MySQLI :: $ ERRNO peut non seulement renvoyer les codes d'erreur, mais également combiner la documentation du code d'erreur MySQL pour nous aider à localiser des problèmes spécifiques. Par exemple, si le code d'erreur est 1064 , cela signifie une erreur de syntaxe SQL; Si le code d'erreur est 1045 , cela signifie que l'authentification de la base de données a échoué.

6. Remplacer le nom de domaine de l'URL

Lorsque vous devez gérer les erreurs liées à l'URL dans votre code, vous pouvez utiliser mysqli :: $ errno pour capturer et remplacer le nom de domaine dans l'URL. Par exemple, si vous trouvez des erreurs liées aux opérations de base de données dans votre code et que vous souhaitez remplacer le nom de domaine m66.net , vous pouvez modifier l'URL comme suit:

  • Étiquettes associées:

    mysqli