Heim  >  Artikel  >  Backend-Entwicklung  >  Warum verursacht fetchAll() beim Aktualisieren einer Datenbank einen „SQLSTATE[HY000]: Allgemeiner Fehler“ im PDO?

Warum verursacht fetchAll() beim Aktualisieren einer Datenbank einen „SQLSTATE[HY000]: Allgemeiner Fehler“ im PDO?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-23 00:53:30956Durchsuche

Why is fetchAll() causing a

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

Trotz der Fehlermeldung scheint Ihr Code die Datenbank erfolgreich zu aktualisieren. Das Problem liegt bei der Verwendung von fetchAll() nach einer Aktualisierungs- oder Einfügeabfrage.

Verstehen des Fehlers

Die Fehlermeldung „SQLSTATE[HY000]: Allgemeiner Fehler“ liefert nur wenige Informationen über den tatsächlichen Zustand Problem. Dies weist normalerweise auf ein allgemeines Problem mit der Datenbankabfrage hin.

Identifizierung des Problems

In Ihrem Code verwenden Sie nach der Ausführung der Aktualisierungsabfrage fetchAll(), um die Ergebnisse abzurufen. Diese Methode wird normalerweise bei Auswahlabfragen verwendet, bei denen alle von der Abfrage zurückgegebenen Zeilen abgerufen werden. Bei Einfüge- oder Aktualisierungsabfragen ist fetchAll() jedoch unnötig und kann Fehler verursachen.

Lösung

Um den Fehler zu beheben, entfernen Sie einfach die fetchAll()-Anweisung:

<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>

Das obige ist der detaillierte Inhalt vonWarum verursacht fetchAll() beim Aktualisieren einer Datenbank einen „SQLSTATE[HY000]: Allgemeiner Fehler“ im PDO?. 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