Как сбросить MySQL столбец в 0 каждые 24 часа? - PullRequest
0 голосов
/ 01 февраля 2019

У меня есть веб-сайт, который позволяет пользователям загружать файлы PDF, я установил ограничение на загрузку 10 файлов в день для каждого пользователя и сохранил числа в базе данных MySQL.все отлично работает!

Проблема в том, что предел будет установлен навсегда, я хочу, чтобы он сбрасывался на 0 каждые 24 часа.Есть ли какая-либо команда phpmyadmin или что-то для автоматического сброса этого столбца каждые 24 часа на 0 или любым другим способом!

Ответы [ 2 ]

0 голосов
/ 01 февраля 2019

Похоже, вы уже сохраняете количество загрузок в таблице журналов.

Для истечения этого количества я предлагаю использовать встроенный в MySQL планировщик событий.Возможно, вам потребуется включить его в параметрах вашего сервера.

Синтаксис будет выглядеть примерно так:

CREATE EVENT myevent
    ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 DAY
    DO
      UPDATE count_db.count_table SET count_column = 0;
0 голосов
/ 01 февраля 2019

Я бы попробовал другой способ.

Я бы добавил таблицу download_log (user_id, file_id, timestamp) и вставлял строку каждый раз, когда пользователь загружает какой-либо файл.Чтобы проверить, достиг ли пользователь лимита, вы можете проверить, сколько загрузок он выполнил за последние 24 часа.Что-то вроде

SELECT COUNT(*) FROM download_log WHERE user_id = ? AND timestamp > DATE_SUB(NOW(), INTERVAL 1 DAY)

Чтобы запланировать некоторые операции, вы можете использовать cron для запуска скрипта

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