Löschen von Datensätzen über SQL-Anweisungen

Löschen funktioniert in der gleichen Weise wie Update. Nur müssen hier keine einzelnen Felder angegeben werden, sondern man sollte gewissenhaft die WHERE-Bedingung setzen. Ansonsten hat man eine komplett leere Datenbank!

Die SQL-Anweisung ist:

DELETE FROM kontakte WHERE id='1'

Diese kann so in phpMyAdmin über den Reiter SQL ausgeführt werden.

Soll es über PHP geschehen, kommt unsere query-Anweisung wieder zum Zuge:

$db->query("DELETE FROM kontakte WHERE id='1'");

Wir können nun wieder über die Anweisung affected_rows herausfinden, wie viele Datensätze betroffen sind.

$db->query("DELETE FROM kontakte WHERE id='1'");
echo $db->affected_rows;

Hier sollte nun beim Ausführen des Codes die Anzahl 1 erscheinen. Ein Datensatz wurde gelöscht, was wir über phpMyAdmin schnell kontrollieren können.

Die SQL-Anweisung ist die gefährlichste aller SQL-Anweisungen. Lasst man diese SQL-Anweisung auf eine große Datenbank aufführen, hat man schnelle eine sehr kleine Datenbank (sprich mit 0 Datensätze). Wird die WHERE-Bedingung falsch oder gar nicht gesetzt, wie im folgenden Beispiel, werden alle Datensätze gelöscht. Dazu erfolgt keinerlei Rückfrage!

$db->query("DELETE FROM kontakte");
echo $db->affected_rows;

Daher immer die WHERE-Bedingung DOPPELT kontrollieren und ein LIMIT mitgeben, wenn es Sinn macht! Oft ist es so, dass eh nur 1 Datensatz gelöscht werden soll. Daher ist dann LIMIT 1 immer ein Sicherheitsnetz, über das man im Notfall froh ist. Ein verlorener Datensatz ist nicht so schlimm wie tausende.