Wenn Sie die UPDATE-Anweisung von MySQL zum Ändern von Daten verwenden, kann der Fehler „Falsche Verwendung von UPDATE und LIMIT“ auftreten ." Dieser Fehler tritt auf, wenn Sie versuchen, die UPDATE-Anweisung mit einer ORDER BY- oder LIMIT-Klausel innerhalb eines Aktualisierungsvorgangs für mehrere Tabellen zu kombinieren.
Im bereitgestellten Codeausschnitt die UPDATE-Anweisung versucht, die Benutzertabelle und die zugehörige Tabelle contact_info basierend auf bestimmten Bedingungen zu ändern. Es enthält jedoch auch eine LIMIT 1-Klausel, die in solchen Szenarien nicht zulässig ist.
In der MySQL-Dokumentation heißt es ausdrücklich, dass für UPDATE-Operationen mit mehreren Tabellen ORDER BY und LIMIT gelten kann nicht verwendet werden. Dies liegt daran, dass die UPDATE-Anweisung alle übereinstimmenden Zeilen in den verbundenen Tabellen aktualisieren muss und die Beschränkung der Aktualisierung auf eine bestimmte Anzahl von Zeilen zu unerwarteten Ergebnissen führen kann.
Um diesen Fehler zu beheben, entfernen Sie einfach die LIMIT 1-Klausel aus Ihrer UPDATE-Anweisung. Der aktualisierte Code sieht in etwa so aus:
$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) . "')"; $r = mysqli_query ($mysqli, $q) or trigger_error("Query: $q\n<br />MySQL Error: " . mysqli_error($mysqli));
Dieser geänderte Code führt den Aktualisierungsvorgang wie vorgesehen aus, ohne Einschränkungen hinsichtlich der Anzahl übereinstimmender Zeilen.
Das obige ist der detaillierte Inhalt vonWarum löst meine MySQL-UPDATE-Anweisung eine „falsche Verwendung von UPDATE und LIMIT' aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!