Я хочу, чтобы скрипт удалял строку, если разница между меткой времени, хранящейся в db и текущим временем, составляет 5 минут или более.
пример
В строке в db есть 2011/12/25 10:00
текущее время – 2001/12/25 10:06
Я хочу, чтобы он удалял строку db.
Почему предложения cron? Вы можете легко вызвать очень простое заявление о выпуске на каждом просмотре страницы. В настоящий момент это становится узким местом (и тогда мы говорим о массивной структуре под напряжением или в очень загруженном месте), может оказаться целесообразным понять, почему запрос настолько медленный. Запустите запрос объяснения, примените некоторые индексы и т. Д. Если проблема все еще существует, возможно, это слишком большая работа, чтобы ждать посетителей, а затем пришло время для cron.
До тех пор просто выполните следующий запрос на каждом просмотре страницы:
delete from YourTable where adddate(YourDateTimeColumn, interval 5 minute) < now()
Вышеприведенный код немного ошибочен. Должен быть
delete from YourTable where adddate(YourDateTimeColumn, interval 5 minute) < now()
Было минут на минутку, этого не должно было быть.
Если вы находитесь в Linux, вы можете написать chron-задание, которое выполняет скрипт php (или почти любой другой язык), который делает это. Насколько мне известно, база данных не будет иметь такую функциональность, вам нужно написать код, который активно это делает. Надеюсь это поможет.
попробуйте это, не проверено tho:
$query = mysql_query("SELECT * FROM table"); $result = mysql_fetch_array($query); $id = $result['id']; $timestamp = strtotime($result['timestamp']); if($timestamp < time()-300){ mysql_query("DELETE FROM table WHERE id=".$id.""); }