Php 如何在超时后重置sql字段

Php 如何在超时后重置sql字段,php,mysql,Php,Mysql,因此,我的数据库表中有一个特定字段,我希望在一段固定的时间后(例如1周)将其重置为0。我的语言是php。有什么办法吗?请帮帮我 好的,基本上我有一列激活点。每当用户进行某种活动时,这些点数就会增加。但是我需要每周将点数重置为0,您可以编写一个简单的mysql语句,将字段更新为0,并将其放在每周运行的cronjob上 编辑: 做一个sql语句来重置你的列,把它放在php文件中并在cronjob上调用它,你可以检查它,你可以随时使用一些免费的cronjob在线解决方案,比如用php做这件事没有什么好

因此,我的数据库表中有一个特定字段,我希望在一段固定的时间后(例如1周)将其重置为0。我的语言是php。有什么办法吗?请帮帮我
好的,基本上我有一列激活点。每当用户进行某种活动时,这些点数就会增加。但是我需要每周将点数重置为0,您可以编写一个简单的mysql语句,将字段更新为0,并将其放在每周运行的cronjob上

编辑:

做一个sql语句来重置你的列,把它放在php文件中并在cronjob上调用它,你可以检查它,你可以随时使用一些免费的cronjob在线解决方案,比如

用php做这件事没有什么好办法

您有几个选择:

使用MySQL新添加的内置调度程序:

使用PHP或MySQL以外的其他来源的软件,如

使用PHP库,就像它不是真正的调度器一样

选项1可能是你最好的选择。它内置于MySQL中,您不必担心会弄乱您尚未使用的任何其他软件

选项2很容易实现,但需要使用除PHP和MySQL之外的其他工具。您可以学习如何使用设置cron作业

我不推荐选项3,除非您完全想使用PHP来实现这一点。但您将受限于计划的定制。从技术上讲,PHPScheduler不是一个真正的调度器,您可以在中了解原因。不过,这篇文章链接的时间比较长,所以它会提到MySQL中没有可用的调度,但是自从那篇文章发表后,事件调度程序就被制作出来了

若要使用事件计划程序选项1,您应该参考和,如果您有任何问题

以下是使用事件计划程序的简单性预览:

这段代码将创建一个名为nazzus_cool_event的事件,它将每1分钟发生一次,从当前_时间戳开始,到一小时后结束。它将向messages表中插入一些数据


它非常简单,但您肯定应该快速查看一下,以便查看它的一些重要功能。

引入到期日期列怎么样?您的代码仅在过期日期未过时才认为记录有效。您可以延迟更新吗?i、 当你提问时?只是一个友好的提示,你可能想阅读这一页:这样你就可以确保你的问题很容易回答并且尽可能清楚。请确保包括您为解决问题所做的任何努力,以及在尝试这些修复时发生的情况。另外,不要忘记显示代码和任何错误消息@Asah我不认为这会起作用,因为作者特别说它会被重置,而不是被忽略。@Nazzu,你说你有一个表,你想重置为0。你的意思是表列吗?你至少应该给出你建议的两部分之一的示例代码。为什么你认为作者在基于Unix的系统上,而cronjobs甚至是一个选项?@MatthewCliatt一个mysql语句的例子?如果他不知道这一点,那么他是在错误的地方,我认为你不需要为克朗乔布树立榜样。关于基于Unix的系统,有很多免费的第三方站点允许免费使用cronjob,所以您不必在自己的服务器上运行它:当然,我没想到您会给出任何MySQL语句的示例。我是说你们至少应该提供一个MySQL的例子,它可以设置一个调度语句。@MatthewCliatt他可以把sql语句放到php文件中,然后在cronjob上调用它。我唯一没有提供的是如何设置cronjob,但是用谷歌搜索它有那么难吗?我给了他一个解决方案,不认为有必要进行讨论。你能给我一个选项1的例子吗?那就是great@Nazzu我已经添加了一个使用事件调度的示例!!!这太容易了!谢谢你帮了我的忙。。但还有一个问题,当我们导入/导出表时,可以从phpmyadmin导入/导出事件吗?我真的很高兴听到它工作了!!!不客气!你介意把我的答案标记为正确的,因为它有助于回答/解决你的帖子吗?非常感谢您的支持:我会研究您的进出口问题,如果我能找到解决方案,请告诉您。
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());