Heim  >  Artikel  >  Backend-Entwicklung  >  Wie behebe ich „SQLSTATE[HY000]: Allgemeiner Fehler“ bei Laravel-PDO-Datenbankaktualisierungen?

Wie behebe ich „SQLSTATE[HY000]: Allgemeiner Fehler“ bei Laravel-PDO-Datenbankaktualisierungen?

Linda Hamilton
Linda HamiltonOriginal
2024-10-23 00:41:31923Durchsuche

How to Troubleshoot

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!

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