Résolution de l'erreur PDO : "SQLSTATE[HY000] : erreur générale" lors de la mise à jour de la base de données
Dans cet article, nous allons plonger dans un problème rencontré lors de la mise à jour d'une base de données à l'aide de PHP Data Objects (PDO) et résolvez le message déroutant "SQLSTATE[HY000] : Erreur générale".
Énoncé du problème
Le problème fourni le code tente de mettre à jour une base de données à l’aide d’une instruction préparée. Cependant, malgré le succès de la mise à jour, un message d'erreur est renvoyé.
$page = 'my_page'; $section = 'content'; $new_content = 'new_content'; $old_content = 'old_content'; try { $stmt = $pdo->prepare("UPDATE $page SET $section = :new_content WHERE $section = '$old_content'"); $stmt->execute(array( 'new_content' => $new_content )); $result = $stmt->fetchAll(); // <-- This line may cause the issue echo "Database updated!"; } catch(PDOException $e) { echo 'ERROR UPDATING CONTENT: ' . $e->getMessage(); }
Message d'erreur
ERROR UPDATING CONTENT: SQLSTATE[HY000]: General error
Solution
Le problème réside dans l’appel à fetchAll() dans le code. fetchAll() est généralement utilisé pour récupérer les données d'une requête réussie. Toutefois, pour les requêtes de mise à jour ou d’insertion, cette instruction n’est pas nécessaire. Le supprimer devrait résoudre le problème.
$result = $stmt->fetchAll(); // <-- Remove this line
Une fois l'instruction fetchAll() supprimée, le code devrait mettre à jour la base de données avec succès sans produire de message d'erreur.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!