| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Хранение записи 24 часа в mySQL |
| Автор: XClan 22.2.2006, 12:48 |
| Как сделать чтобы записи в одной таблице базы mySQL хранились не более 24 часа , после чего удаляются? Это таблица для хранения сгененированных паролей, где после активизации данные пароля берутся с этой таблицы и вставляются в нужную, а временная запись удаляется сразу! А вот кто не активизировался в течение 24 часов - мне нужно автоматом удалять их!!! Но как?? Спасибо! |
| Автор: -=Ustas=- 22.2.2006, 13:07 |
| Автоматом мускула ты не заставишь удалять записи. Посмотри соседние темы, уже много раз поднимался этот вопрос. |
| Автор: Serkys 22.2.2006, 13:25 |
| ИМХО можно сделать, чтобы они удалялись или при попытке активизации после 24-х часов, или при запуске спец. скрипта. При попытке активизации сравниваешь текущее время со временем сгенерированного пароля, если разница <24 часов, то нормалёк и удаляешь запись, если нет - удаляешь запись и выводишь ошибку. Можно записать проверку таблицы в отдельный скрипт и запускать его с помощью спец. средств Апача, несколько тем про запуск скрипта в определённое время уже видел на форуме. |
| Автор: alligator 22.2.2006, 13:32 |
| Или делаешь отдельный скрипт который будет удалять записи и вешаешь его на cron..... |
| Автор: XClan 22.2.2006, 16:31 |
| На cron думаю и повешу! Только не пойму как удобно и безболезненно сравнивать их не применяя регулярные выражения! А то ячейка для поля time в mySQL настроена на timestamp и во время ввода их спомощью TIMESTAMP(8) запись в ней появляется такого плана "2004-02-22 15:00:02" например! А как чтобы в секундах от 1.1.1970 года?? Мне легче сравнивать время в секундах, а то не удобно РВ сравнивать, то что у меня записывает.. |
| Автор: -=Ustas=- 22.2.2006, 16:35 |
| Делай тип поля для времени INT(10) |
| Автор: XClan 22.2.2006, 17:07 |
| Окей! Теперь супер! Чтобы вычесть сутки из настоящего времени допустим 1140615821 , надо вычесть отсюда 3600*12.... Спасибо всем! выручили! |