Heim  >  Artikel  >  Backend-Entwicklung  >  Warum erhalte ich „PDO-Fehler: \'SQLSTATE[HY000]: Allgemeiner Fehler\'\“, wenn ich eine Datenbank mit PDO aktualisiere?

Warum erhalte ich „PDO-Fehler: \'SQLSTATE[HY000]: Allgemeiner Fehler\'\“, wenn ich eine Datenbank mit PDO aktualisiere?

Barbara Streisand
Barbara StreisandOriginal
2024-10-23 01:01:03456Durchsuche

Why Do I Get

PDO-Fehler: „SQLSTATE[HY000]: Allgemeiner Fehler“ beim Aktualisieren der Datenbank

In PDO kann das Aktualisieren einer Datenbank gelegentlich die Beunruhigung auslösen Fehlermeldung: „SQLSTATE[HY000]: Allgemeiner Fehler.“ Das Besondere an diesem Fehler ist jedoch, dass die Datenbankaktualisierung trotz des gemeldeten Problems oft erfolgreich ist.

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>

Fehler:

ERROR UPDATING CONTENT: SQLSTATE[HY000]: General error

Lösung:

Die Ursache dieses Problems liegt in der Verwendung der fetchAll()-Methode nach der Ausführung einer Aktualisierungs- oder Einfügeabfrage. Diese Methode sollte in solchen Szenarios nicht verwendet werden, da sie versucht, Daten aus der Datenbank abzurufen, was nicht auf Aktualisierungs- oder Einfügevorgänge anwendbar ist. Entfernen des $result = $stmt->fetchAll(); Zeile sollte das Problem beheben.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich „PDO-Fehler: \'SQLSTATE[HY000]: Allgemeiner Fehler\'\“, wenn ich eine Datenbank mit PDO aktualisiere?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn