Heim >Backend-Entwicklung >PHP-Tutorial >Wie behebe ich „SQLSTATE[HY000]: Allgemeiner Fehler' bei Laravel-PDO-Datenbankaktualisierungen?
Beheben des PDO-Fehlers: „SQLSTATE[HY000]: Allgemeiner Fehler“ beim Aktualisieren der Datenbank
In diesem Beitrag befassen wir uns mit einem Problem beim Aktualisieren einer Datenbank mithilfe von PHP-Datenobjekten (PDO) und beheben Sie die verwirrende Meldung „SQLSTATE[HY000]: Allgemeiner Fehler“.
Problemerklärung
Die bereitgestellten Code versucht, eine Datenbank mithilfe einer vorbereiteten Anweisung zu aktualisieren. Trotz erfolgreicher Aktualisierung wird jedoch eine Fehlermeldung zurückgegeben.
$page = 'my_page'; $section = 'content'; $new_content = 'new_content'; $old_content = 'old_content'; try { $stmt = $pdo->prepare("UPDATE $page SET $section = :new_content WHERE $section = '$old_content'"); $stmt->execute(array( 'new_content' => $new_content )); $result = $stmt->fetchAll(); // <-- This line may cause the issue echo "Database updated!"; } catch(PDOException $e) { echo 'ERROR UPDATING CONTENT: ' . $e->getMessage(); }
Fehlermeldung
ERROR UPDATING CONTENT: SQLSTATE[HY000]: General error
Lösung
Das Problem liegt im Aufruf von fetchAll() im Code. fetchAll() wird normalerweise verwendet, um Daten aus einer erfolgreichen Abfrage abzurufen. Für Aktualisierungs- oder Einfügungsabfragen ist diese Anweisung jedoch nicht erforderlich. Das Entfernen sollte das Problem beheben.
$result = $stmt->fetchAll(); // <-- Remove this line
Sobald die fetchAll()-Anweisung entfernt wurde, sollte der Code die Datenbank erfolgreich aktualisieren, ohne eine Fehlermeldung zu erzeugen.
Das obige ist der detaillierte Inhalt vonWie behebe ich „SQLSTATE[HY000]: Allgemeiner Fehler' bei Laravel-PDO-Datenbankaktualisierungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!