1小时后删除临时视图

时间:2016-02-09 09:41:28

标签: php mysql sql cron

我有一个表// Update views $stmt = $db->prepare("SELECT COUNT(*) FROM temp_views WHERE v_postid=? AND v_ip=?"); $stmt->bind_param("is",$pid,$ip); $stmt->execute(); $stmt->bind_result($temp_view); $stmt->fetch(); $stmt->close(); if ($temp_view == 0){ // Insert a temporary view for 1 hr $stmt = $db->prepare("INSERT INTO temp_views (v_ip,v_postid) VALUES (?,?)"); $stmt->bind_param("si",$ip,$pid); $stmt->execute(); $stmt->close(); // Add view to post $stmt = $db->prepare("UPDATE posts SET p_views=p_views+1 WHERE p_id=?"); $stmt->bind_param("i",$pid); $stmt->execute(); $stmt->close(); } ,它应该根据用户的IP存储视图。如果视图是1小时,我想从表中删除它。

DateTime.Parse(string)

我该怎么做?

1 个答案:

答案 0 :(得分:0)

在表createdTime中引入新的时间戳字段temp_views。这样您就可以设置一个cron作业来执行删除查询,删除一小时的记录。

如果是TIMESTAMP,请使用

 DELETE FROM `temp_views` WHERE createdTime < (UNIX_TIMESTAMP() - 3600);

如果是DATETIME字段,请使用下面的

 DELETE FROM `temp_views` WHERE `createdTime` < ADDDATE(NOW(), INTERVAL -1HOUR);