Daten löschen mittels DELETE
Das Löschen einzelner Datenbankeinträge ist sehr einfach möglich mittels der DELETE-Anweisung . Im Grunde reicht euch der folgende Code:
1 2 3 4 5 6 |
<?php $pdo = new PDO('mysql:host=localhost;dbname=test', 'username', 'password'); $statement = $pdo->prepare("DELETE FROM tabelle WHERE spalte = ?"); $statement->execute(array('Wert für Spalte')); ?> |
Hier könnt ihr wieder jede beliebige WHERE-Klausel verwenden (nähere Infos dazu im Artikel Komplexere Datenabfrage per SELECT). Möchtet ihr einen User mit einer gewissen ID löschen, so geht dies wie folgt:
1 2 3 4 5 6 |
<?php $pdo = new PDO('mysql:host=localhost;dbname=test', 'username', 'password'); $statement = $pdo->prepare("DELETE FROM users WHERE id = ?"); $statement->execute(array(1)); //Löscht Benutzer mit ID 1 ?> |
Natürlich könnt ihr auch mehrere Bedingungen überprüfen und die Parameter auch benennen. Möchtet ihr alle 'Max Mustermann' aus der User-Tabelle löschen, so könnte euer Code wie folgt aussehen:
1 2 3 4 5 6 |
<?php $pdo = new PDO('mysql:host=localhost;dbname=test', 'username', 'password'); $statement = $pdo->prepare("DELETE FROM users WHERE vorname = :vorname AND nachname = :nachname"); $statement->execute(array('vorname' => 'Max', 'nachname' => 'Mustermann')); //Löscht Benutzer mit Namen Max Mustermann ?> |
Neben WHERE funktionieren auch andere Anweisungen, wie z.B. ORDER BY und LIMIT. Um die alphabetisch ersten 10 Personen aus eurer Tabelle zu löschen, könnt ihr folgende Anweisung verwenden:
1 |
DELETE FROM users ORDER BY vorname,nachname LIMIT 10 |
In den allermeisten Fällen reicht aber das Löschen über die eindeutige ID. Per DELETE wird stets die gesamte Datenbankzeile gelöscht. Wenn ihre eine einzelne Spalte löschen möchtet, so müsst ihr ein entsprechendes UPDATE-Statement verwenden und den Inhalt der Spalte leeren.
Euch sollte natürlich bewusst sein, dass sobald der DELETE-Befehl ausgeführt wurde, die Daten gelöscht sind und nicht so leicht wieder hergestellt werden können. Ein regelmäßiges Backup eurer Datenbank schützt euch von ungewolltem Datenverlust. Unser Artikel Datenbankbackup per PHP erklärt euch, wie ihr automatisiert eine Sicherung euer Datenbank erstellen könnt.
Autor: Nils Reimers