尝试让php查询每天只发生一次
我希望这段代码做查询只是一天一次,这意味着在它发生后,代码将被隐藏或禁用一些如何,这是可能的?谢谢:)尝试让php查询每天只发生一次,php,mysql,sql,Php,Mysql,Sql,我希望这段代码做查询只是一天一次,这意味着在它发生后,代码将被隐藏或禁用一些如何,这是可能的?谢谢:) 正确的方法是在linux中使用cron作业,每天在那里执行一次php脚本 但是如果你真的想把它保存在你的php代码中,你可以选择一天一次,然后做一个if语句来检查时间。正确的方法是在linux中使用cron作业,每天在那里执行一次php脚本 但是如果你真的想把它保存在你的php代码中,你可以选择一天一次,然后做一个if语句来检查时间。当然,cronjob是一个开始,但是即使是cronjobs也
正确的方法是在linux中使用cron作业,每天在那里执行一次php脚本
但是如果你真的想把它保存在你的php代码中,你可以选择一天一次,然后做一个if语句来检查时间。正确的方法是在linux中使用cron作业,每天在那里执行一次php脚本
但是如果你真的想把它保存在你的php代码中,你可以选择一天一次,然后做一个if语句来检查时间。当然,cronjob是一个开始,但是即使是cronjobs也可能会失败,或者你可能有多台机器用于同一个数据库 使用列
last_daily_diamond datetime
扩展表,该列是在用户获取其菱形时设置的,因此:
update users set diamonds=diamonds+1, last_daily_diamond = now()
where username='flaschenpost' and last_daily_diamond < now() - interval 24 hour
;
curdate()
如果用户在10天之后到达,并且应该得到10颗钻石(这个决定取决于您的客户/老板/您自己!),那么它会得到
updateusers set diamonds=diamonds+1,last\u daily\u diamond=last\u daily\u diamond+interval 1天
其中username='flaschenpost'和last_daily_diamond'
curdate()
(如果查询本身的发送频率足够高)
或者更复杂一点(尚未测试)
更新用户设置钻石=钻石+
(@given:=round((unix_timestamp(curdate())-unix_timestamp(last_daily_diamond))/(24*60*60)),
最后一天钻石=curdate()+给定天数的间隔
其中username='flaschenpost'和last_daily_diamond'
curdate()
如果不能扩展users表,还可以为此创建一个额外的表并加入users表。当然,cronjob是一个开始,但即使是cronjobs也可能失败,或者您可能有多台计算机用于同一数据库 使用列
last_daily_diamond datetime
扩展表,该列是在用户获取其菱形时设置的,因此:
update users set diamonds=diamonds+1, last_daily_diamond = now()
where username='flaschenpost' and last_daily_diamond < now() - interval 24 hour
;
curdate()
如果用户在10天之后到达,并且应该得到10颗钻石(这个决定取决于您的客户/老板/您自己!),那么它会得到
updateusers set diamonds=diamonds+1,last\u daily\u diamond=last\u daily\u diamond+interval 1天
其中username='flaschenpost'和last_daily_diamond'
curdate()
(如果查询本身的发送频率足够高)
或者更复杂一点(尚未测试)
更新用户设置钻石=钻石+
(@given:=round((unix_timestamp(curdate())-unix_timestamp(last_daily_diamond))/(24*60*60)),
最后一天钻石=curdate()+给定天数的间隔
其中username='flaschenpost'和last_daily_diamond'
curdate()
如果无法扩展users表,还可以为此创建一个额外的表并加入users表。使用cronjob/计划任务单独使用cronjob可能不好,因为可能会有几天作业失败,并且您不知道在哪一天会出现钻石。此外,这可能与某些游戏中的情况类似:您登录时会获得钻石,但每天最多只能获得一次。使用cronjob/计划任务单独使用cronjob可能不好,因为有时作业会失败,您不知道会在哪一天获得钻石。这也可能像在一些游戏中:当你登录时,你会得到钻石,但最多每天一次。
update users set diamonds=diamonds+1, last_daily_diamond = curdate()
where username='flaschenpost' and last_daily_diamond <
update users set diamonds=diamonds+1, last_daily_diamond = last_daily_diamond + interval 1 day
where username='flaschenpost' and last_daily_diamond <
update users set diamonds=diamonds+
(@given := round((unix_timestamp(curdate()) - unix_timestamp(last_daily_diamond))/(24*60*60))),
last_daily_diamond = curdate() + interval @given days
where username='flaschenpost' and last_daily_diamond <