我现在在线有一个表调用。该表包含onlineId(INT)、onlineIP(INT) 和 onlineDateTime(TimeStamp)。每次客户端访问站点时都会插入该表,并且每次刷新页面时都会更新 onlineDateTime。
所以问题是当 onlineDateTime + 15 分钟时如何从 onlinenow 表中删除数据示例:
我在 08:00 访问该网站并关闭浏览器,这样 onlineDateTime 将不再更新,并在 08:15 后删除数据
这是我现在在线处理插入和更新表的代码:
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
$errMsg = '';
if(empty($errMsg)) {
try {
$check = $connect->prepare("SELECT * FROM onlinenow WHERE onlineIP = '$ip'");
$check->execute();
$dataonline = $check->fetch(PDO::FETCH_ASSOC);
if ($dataonline == true) {
$stmt = $connect->prepare("UPDATE onlinenow SET onlineDateTime = '$naw' WHERE onlineIP = '$ip'");
$stmt->execute();
}else{
$stmt = $connect->prepare('INSERT INTO onlinenow (onlineIP, onlineDateTime) VALUES (:onlineIP, :onlineDateTime)');
$stmt->execute(array(
':onlineIP' => $ip,
':onlineDateTime' => $naw
));
}
}
catch(PDOException $e) {
$errMsg = $e->getMessage();
}
}
我必须做什么才能解决这个问题?
谢谢
最佳答案
您需要编写一个文件,在其中添加删除记录的功能。
然后,将该文件添加到您的 cpanel -> cron 作业 -> 设置每 15 分钟运行一次
您可以在该界面添加您的电子邮件,以便每执行 15 分钟 cron 作业后,记录就会被删除,并且将向您的电子邮件发送一封电子邮件。
关于php - 如何每隔15分钟从MySQL表中删除一条数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44277463/