Position actuelle: Accueil> Derniers articles> La différence entre MySQLI_STMT :: $ ERROR et MYSQLI :: ERRNO et Techniques d'utilisation combinées

La différence entre MySQLI_STMT :: $ ERROR et MYSQLI :: ERRNO et Techniques d'utilisation combinées

gitbox 2025-05-19

Dans PHP, l'extension MySQLI fournit des fonctions riches pour fonctionner sur les bases de données MySQL. MySQLI_STMT :: $ ERROR ET MYSQLI :: ERRNO sont deux propriétés importantes liées à la gestion des erreurs qui peuvent aider les développeurs à attraper et à diagnostiquer des problèmes dans les opérations de base de données. Cet article explorera les différences entre ces deux propriétés et comment les utiliser en combinaison pour améliorer l'efficacité du débogage.

1. Le rôle de MySQLI_STMT :: $ Erreur

MySQLI_STMT :: $ ERROR est une propriété utilisée pour obtenir des messages d'erreur liés à l'objet d'instruction de prétraitement actuel ( MySQLI_STMT ). Cette propriété renvoie une chaîne contenant des messages d'erreur qui se produisent lors de l'exécution des instructions de prétraitement.

Par exemple, lorsque vous exécutez une requête SQL, si la requête échoue, l'erreur MySQLI_STMT :: $ renvoie le message d'erreur du serveur MySQL.

Exemple de code:

 <?php
$mysqli = new mysqli("localhost", "user", "password", "database");

// Vérifier les connexions de la base de données
if ($mysqli->connect_error) {
    die("Échec de la connexion: " . $mysqli->connect_error);
}

// Préparer SQL Déclaration
$stmt = $mysqli->prepare("SELECT * FROM users WHERE id = ?");
if (!$stmt) {
    echo "PréparerDéclaration失败: " . $mysqli->error;
    exit;
}

// Lier les paramètres et exécuter
$id = 1;
$stmt->bind_param("i", $id);
$stmt->execute();

// Vérifiez les résultats d&#39;exécution
if ($stmt->error) {
    echo "Erreur d&#39;exécution: " . $stmt->error;  // Sortie des informations d&#39;erreur détaillées
}
?>

Dans le code ci-dessus, $ stmt-> Une erreur est utilisée pour obtenir le message d'erreur qui se produit lors de l'exécution des instructions SQL. Ceci est très utile pour le débogage et le dépannage.

2. Le rôle de Mysqli :: Errno

MySQLI :: Errno est une propriété utilisée pour obtenir le code d'erreur pour la dernière opération MySQL. Contrairement à l'attribut d'erreur $ qui renvoie des informations d'erreur détaillées, Errno renvoie une valeur entière, indiquant le nombre spécifique de l'erreur MySQL.

Exemple de code:

 <?php
$mysqli = new mysqli("localhost", "user", "password", "database");

// Vérifier les connexions de la base de données
if ($mysqli->connect_error) {
    die("Échec de la connexion: " . $mysqli->connect_error);
}

// mettre en œuvre SQL Requête
$result = $mysqli->query("SELECT * FROM non_existing_table");
if (!$result) {
    echo "MySQL Code d&#39;erreur: " . $mysqli->errno;  // 输出Code d&#39;erreur
    echo "MySQL message d&#39;erreur: " . $mysqli->error;  // Sortie des informations d&#39;erreur détaillées
}
?>

Dans cet exemple, si la requête échoue, $ mysqli-> Errno renvoie un code d'erreur MySQL, par exemple, 1146 signifie que "la table n'existe pas", tandis que $ mysqli-> L'erreur renvoie un message d'erreur détaillé de "Table 'Database.Non_Existing_Table" n'existe pas ".

3. La différence entre mysqli_stmt :: $ error et mysqli :: errno

Bien que MySQLI_STMT :: $ ERROR et MYSQLI :: ERRNO soient liés aux erreurs MySQL, il existe plusieurs différences importantes entre elles:

  • MySQLI_STMT :: $ ERROR est le message d'erreur de l'instruction de prétraitement ( mysqli_stmt ), et mysqli :: errno est le code d'erreur pour la connexion mysql. MySQLI_STMT :: $ L'erreur fournit une chaîne de messages d'erreur, qui est généralement utilisée pour sortir aux développeurs. MySQLI :: Errno renvoie un code d'erreur, qui est souvent utilisé pour une gestion supplémentaire des erreurs et un diagnostic dans les programmes.

  • Différentes portées de l'action : MySQLI_STMT :: $ L'erreur ne s'applique qu'aux instructions SQL exécutées via MySQLI_STMT , tandis que MySQLI :: Errno est applicable à la connexion entière de la base de données et est applicable à tous les types de requêtes et opérations.

4. Utilisez MySQLI_STMT :: $ ERROR et MYSQLI :: ERRNO pour améliorer l'efficacité du débogage

Lorsque vous déboguez le code de base de données PHP, l'utilisation d'erreur MySQLI_STMT :: $ ou mysqli :: Errno seul peut vous aider à trouver le problème, mais l'utilisation des deux ensemble vous aidera à localiser rapidement la cause profonde du problème.

  • Suggestions de débogage : vous pouvez d'abord vérifier MySQLI :: Errno pour obtenir un code d'erreur, puis utiliser MySQLI_STMT :: $ ERROR ou MySQLI :: Erreur pour obtenir des informations d'erreur détaillées. En combinant ces deux-là, vous pouvez déterminer plus précisément quelle partie est erronée et prendre des mesures appropriées.

Exemple d'utilisation combinée Code:

 <?php
$mysqli = new mysqli("localhost", "user", "password", "database");

// Vérifier les connexions de la base de données
if ($mysqli->connect_error) {
    die("Échec de la connexion: " . $mysqli->connect_error);
}

// mettre en œuvre SQL Requête
$result = $mysqli->query("SELECT * FROM non_existing_table");
if (!$result) {
    echo "MySQL Code d&#39;erreur: " . $mysqli->errno . "\n";  // 获取Code d&#39;erreur
    echo "MySQL message d&#39;erreur: " . $mysqli->error . "\n";  // 获取详细message d&#39;erreur
}
?>

Dans le code ci-dessus, obtenez d'abord le code d'erreur via mysqli :: errno , puis obtenez les informations d'erreur détaillées via MySQLI :: Erreur . Une telle combinaison peut aider les développeurs à diagnostiquer rapidement les problèmes, en particulier lorsque les codes d'erreur et les messages d'erreur se complètent.

5. Résumé

  • MySQLI_STMT :: $ L'erreur est utilisée pour obtenir des informations d'erreur liées aux instructions de prétraitement, tandis que MySQLI :: Errno est utilisé pour obtenir du code d'erreur pour les connexions de base de données.

  • Ils fournissent chacun des formats de messages d'erreur différents, le premier renvoie une chaîne et le second renvoie un nombre.

  • En utilisant les deux, vous pouvez déboguer les opérations MySQL plus efficacement, découvrir et résoudre rapidement les problèmes.

Ces deux attributs sont des outils de débogage très importants dans le développement de PHP. La maîtrise de leur utilisation peut considérablement améliorer l'efficacité du débogage et réduire les erreurs dans les opérations de base de données.