Maison  >  Article  >  développement back-end  >  Pourquoi PDO affiche-t-il « SQLSTATE[HY000] : erreur générale » pour les mises à jour de la base de données ?

Pourquoi PDO affiche-t-il « SQLSTATE[HY000] : erreur générale » pour les mises à jour de la base de données ?

DDD
DDDoriginal
2024-10-22 23:50:29253parcourir

Why Does PDO Show

Erreur PDO : "SQLSTATE[HY000] : Erreur générale" lors de la mise à jour de la base de données

Malgré la mise à jour réussie de la base de données par votre code, vous rencontrez un erreur énigmatique lors de l'exécution : "SQLSTATE[HY000] : Erreur générale."

En inspectant votre code, nous remarquons une inclusion inattendue :

<code class="php">$result = $stmt->fetchAll();</code>

Cette ligne de code est généralement utilisée pour récupérer des résultats à partir des instructions select, mais dans le contexte d'une requête de mise à jour, c'est incorrect. Plus précisément, fetchAll() ne doit pas être utilisé pour les requêtes d'insertion ou de mise à jour. Sa suppression devrait résoudre l'erreur.

Ainsi, votre code mis à jour serait :

<code class="php">try {
    $stmt = $pdo->prepare("UPDATE $page SET $section = :new_content WHERE $section = '$old_content'");
    $stmt->execute(array(
        'new_content' => $new_content
    ));
    echo "Database updated!";
}
catch(PDOException $e) {
    echo 'ERROR UPDATING CONTENT: ' . $e->getMessage();
}</code>

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn