Hugo Egon Balder: Löschen aller Datensätze ab bestimmten Alter

Beitrag lesen

Hi Leute,

ich arbeite mit einer MySql Datenbank, auf die ich mittels php zugreife. Dabei verwende ich mysqli. Ich habe nun die Situation, dass bei Aufruf eines Skripts alle Datensätze der Tabelle "warteliste", die älter als 2 Stunden sind, gelöscht werden sollen.

MEIN Lösungsweg ist folgender:

Beim Erstellen dieser Datensätze ermittle ich mit php den aktuellen Unix-Zeitstempel-Wert ($now=time();)und trage diese Zahl (gemeinsam mit den anderen Daten) als "erstellt" in die Tabelle ein.

Wenn das Skript, das die zu alten Einträge löschen soll, jetzt aufgerufen wird, wird WIEDER der aktuelle Unix-Zeitstempel bestimmt und alle Datensätze, wo die Differenz dann größer als 7200 Sekunden ist (also die gewünschten 2 Stunden), werden gelöscht. Sieht also dann so aus:

date_default_timezone_set("Europe/Berlin");  
$now=time();  
$reallow=$now-7200;  
$deleteolds='DELETE FROM `warteliste` WHERE `erstellt` < ?';  
$deletenow=$db->prepare($deleteolds);  
$deletenow->bind_param('i',$reallow);  
$deletenow->execute();

Was ich jetzt gerne von Euch wissen würde:

Ist dieser Lösungsweg so in Ordnung oder gäbe es da eine elegantere und einfachere Variante mit schlankerem Code? Ich hab schon überlegt, ob ich das vielleicht besser mit den Datums- und Zeitfunktionen von mysql lösen soll (ich habe in JEDER Tabelle nämlich auch einen current-time Zeitstempel, der automatisch miterstellt wird und der somit den Zeitpunkt der erstellung wiedergibt), aber was immer ich da auch bisher gefunden und versucht habe, war länger und komplizierter.

Also meinen Code so belassen oder umändern bzw. einfacher mit mysql Datums- und Zeitfunktionen, aber wenn ja, wie?

Danke im Voraus!

Liebe Grüße

Hugo E.B.