PHP MySQL如果时间超过5分钟或超过存储时间

时间:2011-12-16 00:46:57

标签: php mysql date time

如果db中存储的时间戳与当前时间之间的差异为5分钟或更长时间,我希望脚本删除该行。

示例

db中的一行有2011/12/25 10:00
当前时间是2001/12/25 10:06

我希望它删除db行。

4 个答案:

答案 0 :(得分:3)

为什么提出cron建议?您可以在每个页面视图上轻松调用非常简单的删除语句。在成为瓶颈的那一刻(然后我们讨论的是大规模未经过重新设计的表结构或非常繁忙的站点),可能会发现查询为何如此缓慢。运行解释查询,应用一些索引等。如果问题仍然存在,那可能是让访问者等待的工作太多了,然后是cron的时间。

在此之前,只需在每个页面视图上执行以下查询:

delete 
from 
    YourTable 
where 
    adddate(YourDateTimeColumn, interval 5 minute) < now()

答案 1 :(得分:2)

上面的代码有点不对。它应该是

delete 
from 
    YourTable 
where 
    adddate(YourDateTimeColumn, interval 5 minute) < now()

有一分钟,它不应该在那里。

答案 2 :(得分:0)

如果您使用的是Linux,则可以编写chron job来执行执行此操作的php(或几乎任何其他语言)脚本。据我所知,数据库不会内置这种功能,你需要编写主动执行它的代码。希望这会有所帮助。

答案 3 :(得分:-3)

试试这个,而不是经过测试:

$query = mysql_query("SELECT * FROM table");
$result = mysql_fetch_array($query);

$id = $result['id'];
$timestamp = strtotime($result['timestamp']);
if($timestamp < time()-300){
 mysql_query("DELETE FROM table WHERE id=".$id."");
}