Intereting Posts
Вставка данных в MySQL из многомерного массива в php Не удается получить токен из Uber API с ключом действительного доступа Предупреждение: PDOStatement :: execute (): SQLSTATE : Недопустимый номер параметра: количество связанных переменных не совпадает с числом токенов в Кнопка возврата кодовой строки после выхода из системы Как я могу узнать больше о том, почему мой неудачный запуск Laravel не удалось? Запретить доступ к файлу ajax с помощью htaccess цикл запроса mysql получить массив всех атрибутов продуктов в magento Проблема эффективности / структуры базы данных Создание документации xsl необходимо создать эскиз для загрузки видео (очень простой код) Объединение нескольких смежных прямоугольников в один многоугольник Постоянная связь MySQL Данные сеанса Codeigniter потеряны после перенаправления Как сериализовать объект, который имеет закрытие внутри свойств?

PHP MySQL, если время составляет 5 минут или больше, то время хранения

Я хочу, чтобы скрипт удалял строку, если разница между меткой времени, хранящейся в 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.""); }