【问题标题】:php hit counter showing hits back to backphp命中计数器显示背靠背命中
【发布时间】:2019-09-20 04:54:05
【问题描述】:

我正在开发一个点击计数器,当用户访问该页面时将记录一次点击,如果用户在 1 小时后再次访问。但我不知道为什么它不起作用,每当我刷新页面时,都会记录一次点击

我认为日期和时间功能有问题,但我不知道是什么。

这是我的计数器代码

if($dbqueries->Query('SELECT * FROM hits WHERE userId = ?, ip = ?', [$profileId, $ip])){
            if($dbqueries->rowCount() > 0){
                $row = $dbqueries->fetch();
               $date = $row->date;
            }
        }
        echo $date;
        $hit = $dbqueries->Query('SELECT `date` FROM hits WHERE userId = ?, ip = ? ORDER BY DESC', [$profileId, $ip]);

        if(!$hit || (new \DateTime)->modify('-1 hours') > (new \DateTime($date))){
            echo 'Good';
            $dbqueries->Query("INSERT INTO hits (`userId`, `date`, `ip`) VALUES ('{$profileId}', '{$date}', '{$ip}')");
        }   

我们将不胜感激

【问题讨论】:

  • 这里有 SQL 语法错误:WHERE userId = ?, ip = ? 应该是 WHERE userId = ? and ip = ?

标签: php mysql


【解决方案1】:

where 语法应该是

SELECT * FROM hits WHERE userId = ? AND ip = ?

SELECT `date` FROM hits WHERE userId = ? AND ip = ? ORDER BY DESC

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-12
    • 1970-01-01
    • 1970-01-01
    • 2021-09-26
    • 1970-01-01
    • 2010-11-23
    • 1970-01-01
    • 2013-09-28
    相关资源
    最近更新 更多