Lorsque vous utilisez l'extension MySQLI de PHP pour les opérations de base de données, il est inévitable que des erreurs se produisent lors de l'exécution de requêtes de base de données. Surtout lors de l'utilisation de mysqli_stmt_excute () pour exécuter des instructions de prétraitement, le message d'erreur n'explique parfois pas directement la cause spécifique de l'erreur. Pour le moment, nous devons utiliser l'attribut mysqli :: $ errno pour nous aider à localiser l'erreur.
MySQLI :: $ Errno est une propriété de l'extension MySQLI en PHP, indiquant le code d'erreur qui s'est produit dans la dernière opération MySQL. Lorsqu'une erreur se produit lors de l'exécution de mysqli_stmt_exute () , vous pouvez obtenir des codes d'erreur détaillés via mysqli :: $ errno , aidant ainsi les développeurs à localiser rapidement des problèmes.
MySQLI :: $ ERRNO et MySQLI :: $ L'erreur peut nous aider à mieux comprendre les exceptions dans les opérations de base de données MySQL.
Les causes courantes des erreurs peuvent inclure:
Erreur de syntaxe dans l'instruction SQL.
Erreur de liaison des paramètres, telle que la liaison des types de données incompatibles.
Problèmes de connexion de la base de données.
Les autorisations d'accès à la base de données insuffisantes, etc.
Ces erreurs sont parfois provoquées par la valeur booléenne renvoyée ou l'erreur mysqli :: $ , mais pour identifier le problème, nous pouvons combiner mysqli :: $ errno pour obtenir le code d'erreur de l'erreur.
Nous pouvons juger si l'exécution est réussie en utilisant la valeur booléenne renvoyée par mysqli_stmt_excute () . Si false est retourné, cela signifie que l'exécution a échoué. À l'heure actuelle, nous pouvons obtenir des informations d'erreur détaillées via MySqli :: $ Errno et MySqli :: $ Erreur .
<?php
// Créer une connexion de base de données
$mysqli = new mysqli("localhost", "username", "password", "database");
// Vérifiez si la connexion réussit
if ($mysqli->connect_error) {
die("Échec de la connexion: " . $mysqli->connect_error);
}
// Préparer SQL Déclaration
$stmt = $mysqli->prepare("INSERT INTO users (username, email) VALUES (?, ?)");
// Lier les paramètres
$username = 'testuser';
$email = 'testuser@m66.net';
$stmt->bind_param("ss", $username, $email);
// 执行Déclaration
if (!$stmt->execute()) {
echo "Code d'erreur: " . $stmt->errno . "<br>";
echo "message d'erreur: " . $stmt->error . "<br>";
} else {
echo "Insérer avec succès!<br>";
}
// 关闭Déclaration和连接
$stmt->close();
$mysqli->close();
?>
Connexion de la base de données : Tout d'abord, nous créons une connexion de base de données via un nouveau mysqli () et vérifions si la connexion est réussie.
Préparez l'instruction SQL : nous utilisons la méthode Pread () pour préparer une instruction INSERT SQL pour insérer les données utilisateur.
Paramètres de liaison : liez les paramètres insérés via la méthode bind_param () pour assurer le type de données correct.
Exécutez l'instruction et vérifiez les erreurs : si FALSE est renvoyé lors de l'exécution de la méthode MySQLI_STMT_EXECUTE () , cela signifie qu'une erreur d'exécution s'est produite. Nous pouvons obtenir le code d'erreur via $ stmt-> errno et la description de l'erreur via $ stmt-> erreur .
Dans le code ci-dessus, s'il y a une erreur dans l'exécution, nous publierons le code d'erreur et le message d'erreur pour nous aider à localiser rapidement le problème.
Fermez la connexion : Enfin, nous fermons l'instruction de prétraitement et la connexion de la base de données.
Le code d'erreur obtenu par MySQLI :: $ Errno est le code d'erreur standard renvoyé par la base de données MySQL. Voici quelques codes d'erreur courants:
1045 : Accès refusé pour l'utilisateur - Accès insuffisant à la base de données.
1064 : Vous avez une erreur dans votre erreur SQL Syntaxe - SQL Syntaxe.
1062 : Entrée en double - Insérez des données en double, violant les contraintes uniques.
2002 : Impossible de se connecter au serveur MySQL local - Impossible de se connecter au serveur MySQL.
Ces codes d'erreur nous aident à clarifier les raisons de la défaillance de l'opération de base de données.
Grâce à la propriété mysqli :: $ errno , nous pouvons rapidement obtenir des codes d'erreur dans les opérations de base de données, et combinée avec les informations d'erreur de l'erreur MySQLI :: $ , il peut plus facilement localiser la cause profonde du problème. Lorsqu'une erreur se produit dans mysqli_stmt_execute () , assurez-vous de vérifier d'abord la valeur de retour et de dépanner le problème davantage via le code d'erreur, améliorant ainsi l'efficacité de développement et réduisant le temps de débogage.