Position actuelle: Accueil> Derniers articles> Comment utiliser $ errno pour détecter la différence entre les erreurs de syntaxe et les erreurs de connexion

Comment utiliser $ errno pour détecter la différence entre les erreurs de syntaxe et les erreurs de connexion

M66 2025-05-29

Dans PHP, vous pouvez rencontrer des erreurs courantes lorsque vous utilisez l'extension MySQLI pour interagir avec une base de données MySQL. Pour ces erreurs, nous pouvons obtenir le code d'erreur via mysqli :: $ errno pour nous aider à diagnostiquer le problème. En particulier, il est crucial de distinguer les erreurs de connexion de la base de données et les erreurs de syntaxe SQL. Cet article expliquera comment utiliser mysqli :: $ errno pour distinguer ces deux erreurs.

1. Erreur de connexion de la base de données

Les erreurs de connexion de la base de données se produisent généralement lorsque vous essayez de se connecter à la base de données. Si le serveur de base de données a une erreur dans l'adresse, le nom d'utilisateur, le mot de passe ou le nom de la base de données, la connexion échouera. Dans ce cas, MySQLI :: $ Errno renverra un code d'erreur spécifique, et nous pouvons juger le problème en fonction de ce code.

Exemple: erreur de connexion de la base de données

 <?php
$host = 'localhost';  // Adresse du serveur de base de données
$user = 'root';       // Nom d&#39;utilisateur de base de données
$password = '';       // Mot de passe de base de données
$database = 'test';   // Nom de base de données

// Créer une connexion de base de données
$conn = new mysqli($host, $user, $password, $database);

// Vérifiez si la connexion réussit
if ($conn->connect_errno) {
    echo "Erreur de connexion: " . $conn->connect_error;
    // selonerrnoDéterminer le type d&#39;erreur
    if ($conn->connect_errno == 1049) {
        echo "La base de données n&#39;existe pas!";
    } elseif ($conn->connect_errno == 1045) {
        echo "Nom d&#39;utilisateur ou mot de passe incorrect!";
    }
    exit();
}

echo "Connectez-vous avec succès à la base de données!";
?>

Dans cet exemple, si la connexion de la base de données échoue, $ Conn-> connect_errno renvoie un code d'erreur. Par exemple, le code d'erreur 1049 indique que la base de données n'existe pas et le code d'erreur 1045 indique que le nom d'utilisateur ou le mot de passe est mauvais. Avec ces codes d'erreur, vous pouvez localiser le problème plus précisément.

2. Erreur de syntaxe SQL

Lorsque vous exécutez des requêtes SQL, les erreurs de syntaxe SQL peuvent faire échouer la requête. À l'heure actuelle, MySQLI :: $ Errno renverra le code lié aux erreurs SQL. En jugeant le code d'erreur, vous pouvez rapidement distinguer s'il s'agit d'une erreur de syntaxe SQL ou d'autres types d'erreurs.

Exemple: Erreur de syntaxe SQL

 <?php
$host = 'localhost';
$user = 'root';
$password = '';
$database = 'test';

// Créer une connexion de base de données
$conn = new mysqli($host, $user, $password, $database);

// Exécuter une erreur de syntaxeSQLRequête
$sql = "SELEC * FROM users";  // erreur的Requête:SELEC Devrait être SELECT
$result = $conn->query($sql);

// examinerSQLSi l&#39;exécution est réussie
if ($result === false) {
    echo "SQLerreur: " . $conn->error;
    // 判断erreur代码
    if ($conn->errno == 1064) {
        echo "SQL语法erreur!";
    }
    exit();
}

echo "Requête成功!";
?>

Dans cet exemple, la requête SQL a une erreur de syntaxe ( SELEC doit être sélectionné ), et $ Conn-> Errno renvoie 1064, indiquant une erreur de syntaxe SQL. En jugeant la valeur de MySqli :: $ Errno , vous pouvez rapidement localiser les problèmes dans les requêtes SQL.

3. Résumé

MySQLI :: $ Errno fournit un moyen efficace de distinguer les erreurs de connexion de la base de données des erreurs de syntaxe SQL. En vérifiant le code d'erreur renvoyé, vous pouvez rapidement diagnostiquer le problème et réduire le temps de débogage.

  • Erreur de connexion de la base de données : Connect_errno est généralement utilisé pour vérifier si la connexion est réussie et distinguer différentes erreurs de connexion par code d'erreur (par exemple, nom d'utilisateur ou erreur de mot de passe, la base de données n'existe pas, etc.).

  • Erreur de syntaxe SQL : Lorsqu'il y a un problème avec la requête SQL, le code d'erreur renvoyé par $ con-> errno peut vous aider à reconnaître les erreurs de syntaxe.

Ces deux méthodes de traitement des erreurs peuvent vous aider à mieux gérer et déboguer les opérations de base de données et améliorer la robustesse de votre code.