DELETE-Abfragen
DELETE-Abfragen sollten immer mit einem Abfrageerstellungsobjekt verwendet werden. Sie werden mit der Methode delete()
wie folgt ausgeführt:
$query = $connection->delete('mytable', $options);
Dies erzeugt ein Löschabfrageobjekt, das Einträge aus der Tabelle mytable
löscht. Beachten Sie, dass keine geschweiften Klammern für den Tabellennamen erforderlich sind, da der Abfrageersteller dies automatisch übernimmt.
Das Löschabfrageobjekt verwendet eine Fluent-API. Das bedeutet, dass alle Methoden (außer execute()
) das Abfrageobjekt selbst zurückgeben und so Methodenaufrufe verkettet werden können. In vielen Fällen muss das Abfrageobjekt daher gar nicht in einer Variablen gespeichert werden.
DELETE-Abfragen sind konzeptionell sehr einfach und bestehen nur aus einer WHERE-Klausel. Die vollständige Struktur der WHERE-Klausel ist ausführlich im Abschnitt „Bedingte Klauseln“ beschrieben und wird hier nur kurz behandelt.
Eine vollständige DELETE-Abfrage sieht so aus:
$num_deleted = $connection->delete('mytable') ->condition('myfield', 5) ->execute();
Die obige Abfrage löscht alle Zeilen aus der Tabelle {mytable}
, bei denen die Spalte myfield
den Wert 5 hat. Dies entspricht der folgenden SQL-Abfrage:
DELETE FROM {mytable} WHERE myfield=5;
Die Methode execute()
gibt die Anzahl der Datensätze zurück, die durch die Abfrage gelöscht wurden.
Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.