所以我的数据库表中有一个特定的字段,我想在一段固定的时间后重置为0,例如1周。我的语言是php。有什么办法吗?请帮我 好的,基本上我有一个专栏“激活点”。只要用户进行某种活动,这些点就会增加。但我需要每周将积分重置为0
答案 0 :(得分:0)
使用PHP,没有真正的很好的方法。
您有几个选择:
使用MySQL新增的内置调度程序:Event Scheduler。
使用PHP或MySQL以外的软件,如cron jobs。
使用像PHPScheduler这样的PHP库,它不是 true 调度程序。
选项1 可能是您最好的选择。它内置于MySQL中,您不必担心弄乱您尚未使用的任何其他软件。
选项 2易于实现,但确实涉及使用除PHP和MySQL之外的其他工具。您可以了解如何使用this post设置cron作业。
我不建议使用选项3 ,除非您绝对想要使用PHP来执行此操作。但是您将受限于调度的自定义。 PHPScheduler在技术上并不是真正的调度程序,您可以在this post中阅读原因。这个帖子链接的时间比较旧,所以它会提到MySQL中没有可用的调度,但是自那篇文章发布以来,已经制作了事件调度程序。
要使用Event Scheduler
(选项1 ),您应该参考this really really good tutorial,如果您遇到任何问题,请this documentation。
预览了使用事件调度程序是多么容易:
CREATE EVENT nazzus_cool_event
ON SCHEDULE EVERY 1 MINUTE
STARTS CURRENT_TIMESTAMP
ENDS CURRENT_TIMESTAMP + INTERVAL 1 HOUR
DO
INSERT INTO messages(message,created_at)
VALUES('Nazzus cool event just happened again!',NOW());
此代码将创建一个名为event
的{{1}},它将从nazzus_cool_event
(现在)开始每隔1分钟发生一次,并从现在起一小时结束。它会将一些数据插入到消息表中。
这很简单,但你一定要快速浏览一下这个great tutorial,这样你就可以看到更多它的优点。
答案 1 :(得分:-1)