Mysql 用于计算联机用户数的查询不起作用

Mysql 用于计算联机用户数的查询不起作用,mysql,sql,count,Mysql,Sql,Count,为什么它不起作用?这没有显示任何错误,只是返回0行的行计数器 使用NOW函数更新表。并且$user\u id=to$\u SESSION['user\u id'],更新查询工作正常: $uptUltimaAtividade = $conn->prepare("UPDATE `users` SET last_activity = NOW() WHERE user_id = :user_id"); $uptUltimaAtividade->bindParam(':user_id', $u

为什么它不起作用?这没有显示任何错误,只是返回0行的行计数器

使用NOW函数更新表。并且$user\u id=to$\u SESSION['user\u id'],更新查询工作正常:

$uptUltimaAtividade = $conn->prepare("UPDATE `users` SET last_activity = NOW() WHERE user_id = :user_id");
$uptUltimaAtividade->bindParam(':user_id', $user_id, PDO::PARAM_INT);
$uptUltimaAtividade->execute();
在屏幕上打印联机用户数:

$query = $conn->query("SELECT * FROM users WHERE last_activity >= NOW()-600");
$rstq = $query->rowCount();
使用


我认为你使用的算法可能有点缺陷。列last_activity是什么类型的?@我强烈建议使用DATETIME而不是VARCHAR,使用日期/时间算术。@我的助手现在可以了,谢谢。@我有个问题,我应该现在准备吗?正如我对:user_id所做的那样,您能详细说明一下它是如何在中间的左侧工作的吗?最后一个活动是否先转换为日期时间,然后再进行比较?顺便说一句,它应该间隔10分钟;
SELECT * FROM users WHERE last_activity BETWEEN NOW() - INTERVAL 5 MINUTE AND NOW();