【发布时间】:2018-07-15 09:34:47
【问题描述】:
我想在他们上次登录时间的帮助下获取当前在线用户。 我在 php 中的时区是“亚洲/卡拉奇”。
到目前为止我所做的尝试:
$stmt = $db_con->prepare("SELECT COUNT(*) AS id
FROM users
WHERE last_login_time > DATE_SUB(NOW(), INTERVAL 5 MINUTE)");
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_ASSOC);
$total_rows = $row['id'];
echo total_rows;
登录过程php:
$login_time = date('y-m-d h:i:s');
$stmt =$db_con->prepare("UPDATE users SET last_login_time='".$login_time."',last_login_ip='".$login_ip."' WHERE email='".$user_email."'");
$stmt->execute();
SQL 表:
问题: 我想在我的 php 文件中显示在线用户,即使我上次登录时间小于 5 分钟,也总是有数字 0。但是当我将 INTERVAL 5 MINUTE 更改为 INTERVAL 50000 MINUTE 时,它会显示在线用户的数量。 我已经尝试了很多,但没有达到任何目的!
【问题讨论】:
-
您完全错误地使用了准备好的语句。
-
您的 MySQL 是否托管在与您的网站计算登录时间相同的时区?
-
AND last_login_time IS NOT NULL我假设您将表设置为将last_login_time设置为默认为NULL -
如何检查我是否也想知道这一点?
-
请说明您是如何设置 MySQL 字段的?