我在一个网站上工作,我正在尝试在我的 SQL 数据库中存档一个“注销”。
我的计划,以及我已经得到的。
用户正在登录,正常方式:用户名和密码。有用。我的 SQL DB 中有一个 users_login_state 表,当用户登录时,登录页面会在该表中插入一行,包含用户名、用户 ID、日期、时间、令牌等。我知道了,这也可以。在注销时,会发生相反的情况:我的页面从表中的此列表中删除用户。
每次,用户进行操作、导航、评论等,都会在该表的 DB 中发生更新:时间在特定行中刷新。
我想要实现的是:服务器端存储过程:数据库中的一项工作,重复检查该表的内容,可能每 15 或 30 分钟一次:如果表中有一个用户在过去 15 年中一直处于非活动状态分钟,并且所有在 15 分钟前未处于活动状态的用户都将从该列表中删除。
更多细节:我在 php 中使用这些日期和时间格式:
$date = date("Y-m-d"); // Year - Month - Day
$time = date("h:i:sa");
结果是什么:
2017-04-26
和
22:03:46pm
当我在登录时插入登录数据时,我使用以下代码:
$registerThisUserToOnline = mysqli_query($connect, "INSERT INTO users_login_state VALUES ('', '$userMainID', '$user_login', '$loginTpye', '$date', 'NOW()', '$ipAddressData', '$tokencode')");
(我向用户尝试了预先设置的 $time 变量,但在表格中插入了相同格式的时间,我之前写过。
所以我尝试在数据库中做一份工作,并尝试了在网上找到的一些代码(我是存储过程的初学者)
为什么这样:因为我想创建一个邮件部分,并且想在用户列表中显示“最后在线”时间 - 或者如果在线,“在线”,并且我想避免“卡住”用户登录,当用户登录,并在不注销的情况下关闭浏览器,保持登录在数据库中。
对于在 DB 中完成这项工作的任何帮助,我将不胜感激。提前致谢!