我已经实现了一个SQL数据库来跟踪每天访问我的网站的人数。目的是在网站底部显示此访问者计数。然而,我面临着一个问题,即计数器在24小时后不会重置,并继续增加。
如果有人能帮我找出代码中的问题,我将不胜感激。
下面是我在php中执行计数的相关代码片段:
下面是PHP中的代码:
<?php
$mysqliCounter = new mysqli(
"localhost","User","pass","website_db"
);
// Check connection
if ($mysqliCounter -> connect_errno) {
echo "Failed to connect to MySQL: " . $mysqliCounter -> connect_error;
exit();
}
$mysqliCounter->query('INSERT INTO `views` (`id`, `time`) VALUES (NULL, CURRENT_TIMESTAMP)');
在代码之后,我实现了以下逻辑来执行计数:
Today Visitors:
<?php
echo $mysqliCounter->query(
'SELECT * FROM views WHERE time > \''
. date("Y-m-d H:i:s" , time() -86400) . "'")
->num_rows
?>
1条答案
按热度按时间fhity93d1#
感谢@YourCommonSense提供更好的想法。
你必须首先将两个日期转换为char,并在
where
条件下进行比较,如下所示。在上面的代码中,我们将
timestamp
转换为date
,并将其与当前日期进行比较。我们将根据当前日期获取所有选定行的计数。
建议的想法
而不是使用你的数据库,为什么你不使用文件系统,每天使用一个文件。
每次访视时创建/追加文件。
PHP的
flock()
函数会强制脚本按照queque系统写入同一个文件。filewriter将锁定文件并向其写入,然后解锁,下一个filewriter将跟随,依此类推。……