web-dev-qa-db-fra.com

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

Je reçois une erreur lors de la mise à jour d'une base de données à l'aide de PDO. Je suis nouveau sur PDO, alors le problème est peut-être petit et je ne comprends tout simplement pas. Chose amusante à propos de l'erreur, la commande fonctionne bien et la base de données est effectivement mise à jour. Mais elle me renvoie toujours une erreur.

Code:

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

Erreur: ERREUR MISE À JOUR DU CONTENU: SQLSTATE [HY000]: Erreur générale

Je n'ai littéralement aucune idée de l'endroit où le problème pourrait être, car c'est très différent et je n'ai pu trouver personne avec le même problème.

45
loxyboi

Vous n'utilisez pas fetchAll (), comme dans

$result = $stmt->fetchAll();

avec des requêtes de mise à jour ou d'insertion. La suppression de cette déclaration devrait corriger le problème.

96
TranQ

Juste pour noter, une autre raison possible de cette erreur est si vous effectuez un deuxième appel à la base de données avec la variable $ stmt à l'intérieur d'une boucle parent $ stmt existante.

     $stmt = $conn->query($sql);

    while ($row = $stmt->fetch()) {  //second use of $stmt here inside loop
10
Acyra