如何在每15分钟后从MySQL表中删除一个数据?

时间:2017-05-31 06:42:22

标签: php mysql pdo

我在线拨打电话。在此表上包含 onlineId(INT),onlineIP(INT)和onlineDateTime(TimeStamp)。每次客户端访问该站点时都会插入此表,而onlineDateTime会在每次刷新页面时获得更新。

所以问题是如何在onlineDateTime + 15分钟示例中从onlinenow删除数据:

我在08:00访问该网站并关闭浏览器,因此onlineDateTime将不再获得更新,并在08:15之后删除数据

这里我的代码处理插入和更新表onlinenow:

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();
        }
}

我需要做些什么才能解决这个问题?

由于

4 个答案:

答案 0 :(得分:0)

您需要编写一个文件,在其中添加删除记录的功能。

然后,在您的cpanel中添加该文件 - > cron jobs - >设定每15分钟后运行的时间

您可以在该界面添加电子邮件,以便每执行15分钟的cron作业后,记录已删除,并且会在您的电子邮件中发送一封电子邮件。

答案 1 :(得分:0)

您需要设置一个每15分钟运行一次的cron调度程序。这是一个例子。

content: ' ' - 这意味着,它将每15分钟运行一次

*/15 * * * *

以下是deleteRecords.php:

*/15 * * * * /path/to/php deleteRecords.php

答案 2 :(得分:0)

你可以写这样的查询

  

DELETE FROM onlineNow WHERE ADDDATE(onlineDateTime,INTERVAL 15 MINUTE)< = NOW();

此查询必须每15分钟在cron作业中运行。

答案 3 :(得分:0)

When client visit your site and client login in to your site at time you insert onlineIP,and onlineDateTime on table "onlinenow" and also update onlinedateTime every page refresh.

当用户直接关闭浏览器时,您需要更新onlineDateTime 解决方案:需要设置cron作业

在offline.php中写下您的删除代码,在cron jobs cpanel中设置此文件名和文件fullpath - > cron jobs - > serverpath.offline.php 您可以每15分钟调用一次此cron作业,因此您可能需要将cron作业执行时间设置为15分钟

**delete record onlinedateTime is greater than 15 minute** 

offline.php

$ query =" DELETE FROM onlinenow WHERE onlinedateTime< (现在() - 间隔15分钟)&#34 ;;     mysqli_query($查询);

相关问题