Maison  >  Article  >  développement back-end  >  Pourquoi est-ce que j'obtiens \"Erreur PDO : \'SQLSTATE[HY000] : Erreur générale\'\" lors de la mise à jour d'une base de données avec PDO ?

Pourquoi est-ce que j'obtiens \"Erreur PDO : \'SQLSTATE[HY000] : Erreur générale\'\" lors de la mise à jour d'une base de données avec PDO ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-23 01:01:03456parcourir

Why Do I Get

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

Dans PDO, la mise à jour d'une base de données peut occasionnellement déclencher un problème déconcertant message d'erreur : "SQLSTATE[HY000] : erreur générale." Cependant, l'aspect particulier de cette erreur est que la mise à jour de la base de données réussit souvent malgré le problème signalé.

Code :

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

Erreur :

ERROR UPDATING CONTENT: SQLSTATE[HY000]: General error

Solution :

La racine de ce problème réside dans l'utilisation de la méthode fetchAll() après l'exécution d'une requête de mise à jour ou d'insertion. Cette méthode ne doit pas être utilisée dans de tels scénarios, car elle tente de récupérer des données de la base de données, ce qui n'est pas applicable aux opérations de mise à jour ou d'insertion. Suppression du $result = $stmt->fetchAll(); la ligne devrait résoudre le problème.

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