我有一个表// 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)
我该怎么做?
答案 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);