我有一个 cron 作业,我需要每分钟运行一次以检查数据库表。该表由两个字段(用户名、lastping)组成。lastping 是一个 mysql 日期时间对象,由另一个脚本使用 mysqlNOW()
函数设置。我需要检查 lastping 以查看它自上次更新以来是否已经超过一分钟,如果它在最后一分钟没有更新,我想删除包含该用户名和 lastping 的行。我想我可以使用类似这个 sql 语句的东西进行检查。
FROM client WHERE lastping < NOW() - INTERVAL 1 MINUTE;
我的问题是,如何格式化 select 语句以检查整个表并删除记录,如果它已经超过一分钟。
对于仍然连接的用户,我将每 15-30 秒更新一次数据库。这样做的全部目的是让我看到哪些最终用户正在使用我的 C++ 应用程序,或者至少在过去 60 秒内,这样我就可以保持统计数据。
这就是我到目前为止所做的,输出是 Deleted inactive users 但这实际上并没有发生。
mysql_connect(SERVER, USERNAME, PASSWORD);
mysql_select_db(DATABASE);
$query="DELETE (username, lastping) from client where lastping < NOW() - INTERVAL 1 MINUTE";
mysql_query($query) or die ('Error updating database');
echo "Deleted inactive users";