好吧,这更像是一个建议,我该怎么做。
我有一张有产品的桌子。我正在做的是,如果用户登录,他们的失效日期设置为例如31-12-16
,那么我可以在那时运行查询,任何有效期限小于当前日期的产品将被标记为{ {1}}。但这不是合适的解决方案。如果用户未登录,则产品在记录之前不会标记disabled
。
我被建议申请disabled
。但我不知道它是什么。
有谁能建议我如何自动解决这个问题?无论用户是否登录,都将其标记为已禁用。
答案 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 强>
设置cronjob,例如每晚上午1:15执行
/etc/mysql/my.cnf
15 1 * * * php /home/user/update.php
必须提取您的行,并根据您的要求更新它们。
根据您的要求,表格上的视图也很有用。