如何在给定php的特定时间执行查询

时间:2017-01-01 11:16:18

标签: php mysql

好吧,这更像是一个建议,我该怎么做。

我有一张有产品的桌子。我正在做的是,如果用户登录,他们的失效日期设置为例如31-12-16,那么我可以在那时运行查询,任何有效期限小于当前日期的产品将被标记为{ {1}}。但这不是合适的解决方案。如果用户未登录,则产品在记录之前不会标记disabled

我被建议申请disabled。但我不知道它是什么。

有谁能建议我如何自动解决这个问题?无论用户是否登录,都将其标记为已禁用。

1 个答案:

答案 0 :(得分:1)

最简单的方法是创建一个每天运行的MySQL event,并将过期的产品更新为disabled

MySQL事件

DELIMITER $$
CREATE PROCEDURE check_products()
BEGIN
// Place your update query here
// It is executed every day.
END $$
DELIMITER ; 


DELIMITER $$
CREATE 
    EVENT `disable_expired_products` 
    ON SCHEDULE EVERY 1 DAY
    DO BEGIN
    CALL check_products();
END $$
DELIMITER ; 

请注意默认情况下禁用MySQL事件,需要将event_scheduler=1放在[mysqld]的{​​{1}}内来激活

<强>的cronjob

  1. 转到您的shell类型crontab -e
  2. 设置cronjob,例如每晚上午1:15执行

    /etc/mysql/my.cnf

  3. 15 1 * * * php /home/user/update.php必须提取您的行,并根据您的要求更新它们。

    根据您的要求,表格上的视图也很有用。