Falsche Verwendung von UPDATE und LIMIT
MySQL-Benutzer können auf den Fehler „Falsche Verwendung von UPDATE und LIMIT“ stoßen, wenn sie versuchen, Abfragen auszuführen, die sowohl die UPDATE-Anweisung als auch die betreffen LIMIT-Klausel.
Um dieses Problem zu beheben, ist es wichtig, die Einschränkungen der UPDATE-Anweisung bei Verwendung mit mehreren Tabellen zu verstehen. In der MySQL-Dokumentation heißt es: „Für die Mehrfachtabellensyntax aktualisiert UPDATE Zeilen in jeder in table_references genannten Tabelle, die die Bedingungen erfüllen. In diesem Fall können ORDER BY und LIMIT nicht verwendet werden.“
Im Beispiel bereitgestellter Code:
$q = "UPDATE users INNER JOIN contact_info ON contact_info.user_id = users.user_id SET active.users = NULL WHERE (email.contact_info = '" . mysqli_real_escape_string($mysqli, $x) . "' AND active.users = '" . mysqli_real_escape_string($mysqli, $y) . "') LIMIT 1";
Die Abfrage versucht, eine Aktualisierung unter Verwendung mehrerer Tabellen (Benutzer und Kontaktinformationen) durchzuführen und gleichzeitig eine LIMIT-Klausel anzuwenden. Wie bereits erläutert, kann LIMIT in solchen Szenarien nicht verwendet werden.
Um das Problem zu beheben, sollten Sie die Abfrage wie folgt ändern:
$q = "UPDATE users INNER JOIN contact_info ON contact_info.user_id = users.user_id SET active.users = NULL WHERE (email.contact_info = '" . mysqli_real_escape_string($mysqli, $x) . "' AND active.users = '" . mysqli_real_escape_string($mysqli, $y) . "');";
Durch Entfernen der LIMIT-Klausel wird die Abfrage erfolgreich ausgeführt und aktualisieren Sie die angegebene(n) Zeile(n) in der Benutzertabelle.
Das obige ist der detaillierte Inhalt vonWarum gibt MySQL den Fehler „Falsche Verwendung von UPDATE und LIMIT' aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!