Position actuelle: Accueil> Derniers articles> Vérifiez $ errno après mysqli_ping pour confirmer si la connexion est restaurée

Vérifiez $ errno après mysqli_ping pour confirmer si la connexion est restaurée

M66 2025-05-28

Lorsque vous utilisez des bases de données MySQL, nous devons souvent faire face à la situation où la connexion de la base de données est déconnectée. Habituellement, nous effectuons une détection de connexion dans le code, et lorsque la connexion de la base de données est déconnectée, nous pouvons essayer de nous reconnecter. Un moyen courant consiste à utiliser la fonction mysqli_ping () pour détecter si la connexion est valide et utiliser mysqli :: $ errno pour vérifier l'état de la récupération de la connexion.

1. Qu'est-ce que mysqli_ping () ?

MySQLI_PING () est une fonction fournie par PHP pour détecter si une connexion de base de données MySQL est toujours valide. Si la connexion de la base de données est valide, la fonction renvoie true , sinon il renvoie false . Si la connexion n'est pas disponible, vous pouvez utiliser cette fonction pour essayer de rétablir la connexion.

Exemple d'utilisation de mysqli_ping ()

 <?php
$mysqli = new mysqli("m66.net", "username", "password", "dbname");

if ($mysqli->connect_error) {
    die("Échec de la connexion: " . $mysqli->connect_error);
}

// utiliser mysqli_ping() Vérifiez si la connexion est toujours valide
if (!$mysqli->ping()) {
    echo "Coupure,Essayer de se reconnecter...<br>";
    // Essayez de vous reconnecter
    $mysqli = new mysqli("m66.net", "username", "password", "dbname");

    // Vérifiez si la reconnexion est réussie
    if ($mysqli->connect_error) {
        die("重新Échec de la connexion: " . $mysqli->connect_error);
    } else {
        echo "Reconnecter avec succès!<br>";
    }
} else {
    echo "La connexion reste valide!<br>";
}
?>

Dans le code ci-dessus, nous utilisons mysqli_ping () pour détecter l'état de la connexion de la base de données. Si la connexion est déconnectée, nous essayons de nous reconnecter à la base de données et de vérifier si la connexion est réussie.

2. Comment utiliser MySqli :: $ Errno pour confirmer si la connexion de la base de données est restaurée à la normale?

MySQLI :: $ Errno est une propriété couramment utilisée en PHP qui contient le code d'erreur pour la dernière opération de base de données. Si aucune erreur ne s'est produite dans l'opération récente, la valeur de MySqli :: $ Errno est 0 . Si la connexion de la base de données est restaurée avec succès, MySQLI :: $ Errno sera également 0. Si une défaillance de connexion ou une autre erreur de base de données se produit, MySQLI :: $ Errno renvoie une valeur non nulle, indiquant la cause spécifique de l'erreur.

Confirmez l'état de récupération de connexion à l'aide de mysqli :: $ errno

 <?php
$mysqli = new mysqli("m66.net", "username", "password", "dbname");

if ($mysqli->connect_error) {
    die("Échec de la connexion: " . $mysqli->connect_error);
}

// utiliser mysqli_ping() Vérifiez si la connexion est valide
if (!$mysqli->ping()) {
    echo "Coupure,Essayer de se reconnecter...<br>";
    
    // Essayez de vous reconnecter
    $mysqli = new mysqli("m66.net", "username", "password", "dbname");

    // utiliser mysqli::$errno Confirmez si la connexion est restaurée
    if ($mysqli->connect_error) {
        echo "重新Échec de la connexion,Code d&#39;erreur: " . $mysqli->connect_errno . "<br>";
    } else {
        echo "Reconnecter avec succès!<br>";
    }
} else {
    echo "La connexion reste valide!<br>";
}
?>

Dans le code ci-dessus, nous confirmons si la connexion est restaurée en vérifiant mysqli :: $ errno . Lorsque vous essayez de se reconnecter, s'il existe une erreur de connexion, vous pouvez obtenir le code d'erreur spécifique via $ mysqli-> connect_errno pour aider les développeurs à comprendre le problème.

3. Pourquoi l'utiliser en combinaison avec mysqli_ping () et mysqli :: $ errno ?

Bien que MySQLI_PING () puisse nous aider à vérifier si la connexion de la base de données est valide, lorsque la connexion est déconnectée, il peut y avoir des erreurs de réseau ou des problèmes du côté serveur MySQL. À ce stade, MySqli :: $ Errno peut fournir des informations d'erreur supplémentaires pour nous aider à mieux diagnostiquer le problème.

Par exemple, mysqli :: $ errno peut renvoyer le code d'erreur suivant:

  • 2002 - Délai de connexion

  • 1045 - Problèmes d'autorisations

  • 2003 - Impossible d'accéder au serveur de base de données

En combinant mysqli_ping () et mysqli :: $ errno , nous pouvons avoir une compréhension plus claire de l'état des connexions de la base de données et prendre des mesures correspondantes.

4. Résumé

Utilisation de mysqli_ping () pour vérifier l'état de la connexion de la base de données et confirmer s'il est restauré à la normale via mysqli :: $ errno est un moyen très efficace de faire face aux problèmes de connexion de la base de données. La combinaison de ces deux peut nous aider à détecter et à gérer rapidement des problèmes avec les connexions de la base de données, en garantissant la stabilité et la fiabilité du programme.

Grâce à la méthode ci-dessus, nous pouvons facilement nous assurer que la connexion à la base de données MySQL est dans un état sain et réduire les erreurs causées par la perte de connexion. N'oubliez pas que la détection et la gestion en temps opportun des problèmes de connexion de la base de données sont la clé pour assurer le fonctionnement stable du système.