Как удалить строку mysql после прохода времени?

Я не знаю, с чего начать с этого:

У меня есть база данных, которая хранит postID и Date .

Я хочу, чтобы мой сайт автоматически удалял все строки, где Date меньше, чем сегодня. Этот скрипт не может иметь никакого пользовательского ввода вообще. Никаких щелчков кнопки, ничего. Сценарий должен запускаться каждый день в полночь.

Я искал повсюду что-то, что делает это, и я ничего не нашел.

    Вы можете использовать PHP-скрипт и использовать работу cron на своем cpanel.

    Пример:

    cronjobcommand.php

     <?php include 'your_db_connection'; mysql_query("DELETE FROM your_table_name WHERE Date < NOW()"); ?> 

    Я добавил скриншот ниже для получения дополнительной информации.

    введите описание изображения здесь

    Для тех, кто находится на общем хостинге, например 1and1, и не может использовать cron, вот 2 альтернативы:

    • События mysql позволяют размещать триггер времени на mysql, который будет выполняться, когда вы захотите, без необходимости запускать какой-либо пользовательский ввод

    • если вы не можете создавать события mysql, потому что вы используете 1 и 1 :(, альтернативой является использование webcron

    Вам просто нужно указать webcron URL-адрес скрипта php, который вы хотите запустить, и они будут запускать его для вас с интервалами, которые вы хотите

    Зачем использовать cronjobs каждый день? Почему бы не фильтровать данные на выходе. Например, в вашем выбранном флажке, если дата публикации равна сегодняшнему, добавив простой:

     SELECT * FROM `posts` WHERE (DATE(`post_date`) = DATE(NOW())); 

    Таким образом, вы не обязаны выполнять управление базами данных / cronjobs в любое специальное время, и это будет использоваться только для управления базами данных. Впоследствии вы можете удалить ненужные данные в любое время, используя команду mysql, например:

     DELETE FROM `posts` WHERE ( DATE(`post_date`) < DATE(NOW()) ) 

    Большинство хостов предоставляют службу cron(8) которая может выполнять команды в определенное время. Вы используете программу crontab(1) для управления файлом crontab(5) который описывает, когда запускать команды.

    Существует много функциональных возможностей для вас, но если вы пишете программу (сценарий оболочки, скрипт php, программу на языке C), что угодно), которая запускает соответствующие команды MySQL, вы можете вызывать программу через cron(8) полностью в режиме hands-off мода.

    Запустите crontab -e чтобы отредактировать текущий файл crontab(5) . Если ничего не существует, надеюсь, вы получите один с полезным заголовком. Если нет, скопируйте это:

     # mh dom mon dow command 

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

    Таким образом, полночь каждую ночь будет выглядеть так:

     0 0 * * * /path/to/executable 

    Это замечательно гибко, поэтому поместите некоторое время в документацию, и вы найдете много применений для нее.

    Вы должны установить для него задание cron (запланированное задание).

    Задача cron – автоматическая настройка программы для операционных систем Linux и Unix. Он позволяет пользователю выполнять несколько команд или функций в определенное время и дату.

    у вас есть cron Job в настройке cpanel. сначала вам нужно сделать php-скрипт с вашей логикой для удаления записи после каждой даты. взять дату с сервера и написать скрипт для удаления.

    затем перейдите на вкладку cron в своем cpanel и выполните настройки временного интервала для запуска cron и укажите путь к файлу скрипта php.

    У MySQL нет планировщика задач. Таким образом, вы должны использовать планировщик задач своей операционной системы ( CRON под Linux) или обедать основным сценарием проверки задачи во время сценария главной страницы (на другой странице, которая должна отображать изменяющиеся данные).