Position actuelle: Accueil> Derniers articles> Comment obtenir le code d'erreur MySQL de MySQLI_STMT :: Préparer?

Comment obtenir le code d'erreur MySQL de MySQLI_STMT :: Préparer?

gitbox 2025-06-07

Lorsque vous utilisez l'extension MySQLI de PHP pour les opérations de base de données, MySQLI_STMT :: Préparer est une méthode importante pour le prétraitement des instructions SQL. Les instructions de prétraitement peuvent améliorer la sécurité et l'efficacité, mais pendant le processus d'exécution de préparation , s'il y a des erreurs dans l'instruction SQL, comprendre comment obtenir des codes d'erreur MySQL spécifiques est très critique pour le débogage. Cet article introduira en détail comment obtenir le code d'erreur MySQL généré lorsque MySQLI_STMT :: Préparer est exécuté et les étapes connexes.


1. Comprendre mysqli_stmt :: Préparez-vous

La méthode MySQLI_STMT :: Préparer est utilisée pour prétraiter une instruction SQL. Il renvoie une valeur booléenne indiquant si le prétraitement réussit. S'il échoue, les informations d'erreur et le code d'erreur peuvent être obtenus via les attributs ou méthodes pertinents.

 $stmt = $mysqli->stmt_init();
if (!$stmt->prepare("YOUR SQL HERE")) {
    // Le prétraitement a échoué
}

2. Obtenez les propriétés et les méthodes de code d'erreur

L'objet mysqli_stmt fournit deux membres clés pour obtenir des informations d'erreur:

  • $ stmt-> errno : obtenez le code d'erreur (numéro d'erreur)

  • $ stmt-> Erreur : obtenez le message d'erreur

De plus, vous pouvez également obtenir des codes d'erreur globaux et des informations en connectant l'objet $ mysqli .


3. Exemples d'étapes spécifiques Code

Vous trouverez ci-dessous un exemple de code montrant comment appeler Préparer et obtenir des codes d'erreur et des messages d'erreur lorsqu'ils échouent.

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

// Vérifiez si la connexion réussit
if ($mysqli->connect_errno) {
    die("Échec de la connexion,Code d&#39;erreur: " . $mysqli->connect_errno . ",message d&#39;erreur: " . $mysqli->connect_error);
}

// Initialiser l&#39;objet de déclaration de prétraitement
$stmt = $mysqli->stmt_init();

// Prétraitement SQL Déclaration(Écrivez-le illégalement ici pour déclencher l&#39;erreur)
$sql = "SELEC * FROM users"; // Faux SQL,SELECT Orthographe d&#39;erreur

if (!$stmt->prepare($sql)) {
    echo "Le prétraitement a échoué!" . PHP_EOL;
    echo "Code d&#39;erreur: " . $stmt->errno . PHP_EOL;
    echo "message d&#39;erreur: " . $stmt->error . PHP_EOL;
} else {
    echo "Prétraitement成功!" . PHP_EOL;
}

$stmt->close();
$mysqli->close();
?>

4. Description

  • Dans le code ci-dessus, SELECT est délibérément orthographié en SELEC , et la méthode de préparation renvoie False .

  • Obtenez des codes d'erreur détaillés et des descriptions d'erreur via $ stmt-> errno et $ stmt-> erreur .

  • Lorsque la connexion échoue, utilisez $ mysqli-> connect_errno et $ mysqli-> connect_error pour obtenir les informations d'erreur.


5. Résumé

Obtenir le code d'erreur MySQL généré lors de l'exécution de MySQLI_STMT :: Préparer principalement de l'attribut Errno de l'objet mysqli_stmt . Combiné avec l'attribut d'erreur , il peut rapidement localiser les problèmes et faciliter le débogage. Il est recommandé de détecter la valeur de retour après chaque appel pour préparer et de lire le code d'erreur et les informations d'erreur immédiatement après l'échec.