PHP MySQL, если время на 5 минут больше или превышает сохраненное время - PullRequest
1 голос
/ 16 декабря 2011

Я хочу, чтобы скрипт удалил строку, если разница между отметкой времени, которая хранится в БД, и текущим временем составляет 5 минут или более.

* ** 1003 тысяча два * Пример

Строка в БД имеет 2011/12/25 10:00
текущее время 2001/12/25 10: 06

Я хочу удалить строку БД.

Ответы [ 4 ]

3 голосов
/ 16 декабря 2011

Почему cron предлагает?Вы можете легко вызвать очень простое удаление оператора на каждом просмотре страницы.В тот момент, когда это становится узким местом (а затем мы говорим либо о крайне недоработанной структуре таблиц, либо об очень загруженном сайте), может оказаться целесообразным понять, почему запрос такой медленный.Запустите запрос объяснения, примените некоторые индексы и так далее.Если проблема все еще существует, возможно, это просто слишком большая работа, чтобы позволить посетителям ждать, а затем настало время для cron.

До этого просто выполните следующий запрос для каждого просмотра страницы:1003 *

delete 
from 
    YourTable 
where 
    adddate(YourDateTimeColumn, interval 5 minute) < now()
2 голосов
/ 15 февраля 2013

Приведенный выше код слегка ошибочен. Должно быть

delete 
from 
    YourTable 
where 
    adddate(YourDateTimeColumn, interval 5 minute) < now()

Была минута, ее не должно быть.

0 голосов
/ 16 декабря 2011

попробуй это, не проверено, хотя:

$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."");
}
0 голосов
/ 16 декабря 2011

Если вы работаете в Linux, вы можете написать chron job , который выполняет скрипт php (или почти любой другой язык), который делает это. Насколько я знаю, в базе данных не будет встроена подобная функциональность, вам нужно написать код, который активно это делает. Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...