Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用PHP在设定日期自动从mysql中删除_Mysql - Fatal编程技术网

如何使用PHP在设定日期自动从mysql中删除

如何使用PHP在设定日期自动从mysql中删除,mysql,Mysql,我在数据库的ad表中添加了一些行,它们的属性包括创建日期和到期日期 我需要php脚本自动删除其到期日期已达到的行 请协助我的项目。 感谢您您可以使用MySQL在这些记录过期时自动删除它们: CREATE EVENT delete_expired_101 ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 3 WEEK DO DELETE FROM my_table WHERE id = 101; 或定期自动清除所有过期记录: CREATE EVENT del

我在数据库的ad表中添加了一些行,它们的属性包括创建日期和到期日期

我需要php脚本自动删除其到期日期已达到的行

请协助我的项目。 感谢您

您可以使用MySQL在这些记录过期时自动删除它们:

CREATE EVENT delete_expired_101
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 3 WEEK DO
DELETE FROM my_table WHERE id = 101;
或定期自动清除所有过期记录:

CREATE EVENT delete_all_expired
ON SCHEDULE EVERY HOUR DO
DELETE FROM my_table WHERE expiry < NOW();
CREATE EVENT delete\u all\u过期
按计划每小时做一次
从my_表中删除到期
您要查找的是
crontab

使用它,您将能够安排脚本在确定的时间内运行,例如:

每隔
5分钟运行
deleteeexpiredrows.php
每隔
2小时运行
updateOnlineUsers.php

Cron非常容易使用。检查这个

在您的web主机上设置crontab:
/path/to/hosting/php/home/user/public\u html/script.php

php的路径可能会有所不同,因此请与主机联系以获取此信息。有关crontab的更多信息,请访问stackoverflow。

注意:您可能需要检查您的web托管服务是否支持crontab。


完成此操作后,您只需创建PHP脚本来删除比当前时间早的每一行。

事件日程安排必须在虚拟主机或web主机上可用
CREATE EVENT delete_expired_101
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 3 WEEK DO
DELETE FROM my_table WHERE id = 101;
CREATE EVENT delete_all_expired
ON SCHEDULE EVERY HOUR DO
DELETE FROM my_table WHERE expiry < NOW();