gpt4 book ai didi

php - 最多 24 小时更新数据库

转载 作者:行者123 更新时间:2023-11-29 23:54:12 29 4
gpt4 key购买 nike

我正在尝试制作一个点击计数器,我想收集 24 小时内的总点击次数。无论最终用户位于哪个时区,这 24 小时都应该是固定值。在 24 小时内,数据库应更新为 +1 次点击计数,一旦达到 24 小时时间范围,计时器应重置。

这是我正在尝试的:

$timer = TIME_NOW - 60*60*24;
if ($timer < TIME_NOW)

$db->query("UPDATE settings SET value=value+1 WHERE name='hits_today'");
}
else
{
$db->query("UPDATE settings SET value=0 WHERE name='hits_today'");
}

这里TIME_NOW是一个定义为time()的常量

我在这个网站上搜索了很多,但没有找到这个问题的任何答案,请帮忙,我该如何解决这个问题?

谢谢!

最佳答案

首先,您需要将计时器的启动时间存储在某处。然后您就可以在 PHP 中进行此检查了。没有它,您永远不会知道自上次检查以来已经过了多少时间。

替代解决方案 1:在 DB 中创建一个包含计时器值的字段。然后在设置表上创建 ON UPDATE 触发器来检查时间,即如果是新的一天,请更新此时间,然后重置计数器。

DELIMITER $$
CREATE TRIGGER update_counter
AFTER UPDATE ON settings
FOR EACH ROW
BEGIN
SET TIMER = (SELECT value FROM settings WHERE name='hits_timer' LIMIT 1);
IF (TIMER < NOW() - INTERVAL 1 DAY) THEN
UPDATE settings SET value=NOW() WHERE name='hits_timer';
UPDATE settings SET value=0 WHERE name='hits_today';
END IF;
END;
$$
DELIMITER ;

替代解决方案 2:与第一个类似,但使用在某个特定时间(午夜、凌晨 1 点等)触发的 CRON 作业。

关于php - 最多 24 小时更新数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25451507/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com