Lors du développement d'applications PHP, les extensions MySQLI sont couramment utilisées pour les opérations de base de données, parmi lesquelles les opérations de mise à jour sont très courantes. Pour assurer une exécution fluide de l'opération, nous devons être en mesure de capter d'éventuelles erreurs et de déboguer. MySQLI_STMT :: $ L'erreur est un moyen courant d'attraper des erreurs, ce qui peut nous aider à obtenir des informations d'erreur détaillées lors de l'exécution des opérations de mise à jour . Cet article présentera comment utiliser MySQLI_STMT :: $ Erreur en PHP pour capturer les erreurs des opérations de mise à jour ratées et résoudre le problème en débogage des informations.
Supposons d'abord que vous êtes connecté à la base de données MySQL et que vous êtes prêt à effectuer une opération de mise à jour . Voici un exemple simple d'opération de mise à jour :
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test_db";
// Créer une connexion
$conn = new mysqli($servername, $username, $password, $dbname);
// Vérifiez la connexion
if ($conn->connect_error) {
die("Échec de la connexion: " . $conn->connect_error);
}
// Supposons que nous voulons mettre à jour le nom d'utilisateur dans la table utilisateur
$sql = "UPDATE users SET username = ? WHERE id = ?";
$stmt = $conn->prepare($sql);
// Supposons que ce sont les paramètres que nous voulons lier
$new_username = "new_user";
$user_id = 1;
// Lier les paramètres
$stmt->bind_param("si", $new_username, $user_id);
// Instruction d'exécution
$stmt->execute();
// Vérifier les erreurs
if ($stmt->error) {
echo "La mise à jour a échoué: " . $stmt->error;
} else {
echo "Mettre à jour avec succès";
}
$stmt->close();
$conn->close();
?>
Connectez-vous à la base de données <br> Nous utilisons un nouveau mysqli () pour nous connecter à la base de données MySQL. Si la connexion échoue, le programme se termine avec un message d'erreur affiché.
Préparer la déclaration de mise à jour <br> Nous créons une requête de mise à jour qui est utilisée pour mettre à jour le champ de nom d'utilisateur dans la table des utilisateurs . Nous préparons la requête à travers le ? Payholder, qui nous permet de lier la valeur réelle via la méthode bind_param () .
Lier les paramètres <br> Utilisez la méthode bind_param () pour lier les paramètres. Le premier paramètre est une chaîne du type lié, SI signifie que le premier paramètre est un type de chaîne et que le second est un type entier.
Instruction d'exécution
La méthode EXECUTE () est utilisée pour exécuter des instructions SQL préparées. Si l'exécution échoue, nous obtenons le message d'erreur via $ stmt-> erreur .
Lors de l'exécution des instructions SQL, la propriété $ stmt-> Erreur peut attraper l'erreur de défaillance d'exécution. Si l'opération de mise à jour échoue, $ stmt-> L'erreur renvoie les informations d'erreur détaillées, sur lesquelles nous pouvons déboguer en fonction.
if ($stmt->error) {
echo "La mise à jour a échoué: " . $stmt->error;
} else {
echo "Mettre à jour avec succès";
}
S'il n'y a pas d'utilisateur avec l'ID 1 dans la table de la base de données, une erreur peut se produire lors de l'exécution de l'opération de mise à jour , et le message d'erreur peut être le suivant:
La mise à jour a échoué: You have an error in your SQL syntax
Ce message d'erreur nous aidera à localiser le problème, qui peut être des erreurs de syntaxe SQL, des erreurs de nom de champ ou d'autres problèmes liés à la base de données.
Erreur de syntaxe SQL <br> Lorsqu'il y a une erreur de syntaxe dans l'instruction SQL, $ stmt-> L'erreur renverra des informations similaires à "vous avez une erreur dans votre syntaxe SQL". Il peut être vérifié en imprimant la requête SQL finale.
echo "SQL Requête: " . $sql;
En imprimant les requêtes SQL, vous pouvez voir directement les instructions SQL reçues par la base de données, en trouvant et en fixant ainsi les erreurs de syntaxe.
Problème de liaison des paramètres <br> Une erreur peut en résulter si le type lié dans bind_param () ne correspond pas au type du paramètre réellement passé. Par exemple, si une chaîne est transmise à un argument qui nécessite un type entier, $ stmt-> L'erreur renvoie le message d'erreur pertinent.
Problèmes de connexion de la base de données <br> Si la connexion de la base de données n'est pas réussie, $ Conn-> connect_error renvoie le message d'erreur de l'échec de la connexion. Pour le moment, vous devez vérifier les informations de configuration telles que l'hôte de la base de données, le nom d'utilisateur, le mot de passe, etc.
En utilisant MySQLI_STMT :: $ ERROR, nous pouvons effectivement attraper et déboguer les erreurs dans les opérations de mise à jour . La clé consiste à obtenir des informations d'erreur détaillées via l'attribut d'erreur et un débogage supplémentaire en fonction de ces informations. Au cours du processus de développement, la capture des erreurs est un moyen important pour assurer la stabilité des applications et l'efficacité de débogage.
J'espère que cet article vous aidera à mieux comprendre comment utiliser MySQLI_STMT :: $ Erreur pour assister à la mise à jour des erreurs de défaillance de l'opération et de débogage. Si vous rencontrez des problèmes pendant l'utilisation, n'hésitez pas à consulter la documentation officielle ou à continuer de déboguer.