如果存储在db中的时间戳与当前时间之间的差值为5分钟或更长时间,我希望脚本删除该行。PHP MySQL如果时间多于或超过5分钟,则存储时间
例
在DB已经连续2011/12/25 10:00
当前时间是2001年12月25日10:06
我希望它删除数据库行。
如果存储在db中的时间戳与当前时间之间的差值为5分钟或更长时间,我希望脚本删除该行。PHP MySQL如果时间多于或超过5分钟,则存储时间
例
在DB已经连续2011/12/25 10:00
当前时间是2001年12月25日10:06
我希望它删除数据库行。
如果你在Linux中,你可以写一个chron job执行一个php(或几乎任何其他语言)的脚本来做到这一点。据我所知,一个数据库不会有这种内置的功能,你需要编写积极的功能。希望这可以帮助。
试试这个,不寿测试:
$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."");
}
为什么cron的建议?您可以轻松地在每个页面视图上调用非常简单的删除语句。在成为瓶颈的时刻(然后我们讨论的是大量未改造的表格结构或非常繁忙的网站),查看查询速度如此缓慢的原因可能会变得适当。运行解释查询,应用一些索引,等等。如果问题仍然存在,可能会让游客等待太多工作,然后是cron的时间。
在那之前,只需在每个页面视图执行以下查询:
delete
from
YourTable
where
adddate(YourDateTimeColumn, interval 5 minute) < now()
上面的代码稍有不妥。它应该是
delete
from
YourTable
where
adddate(YourDateTimeColumn, interval 5 minute) < now()
有一分钟,它不应该在那里。
这是非常广泛的。你在哪个部分挣扎?你能显示你现在需要查询数据库的代码吗? – 2011-12-16 00:49:00
我认为你所寻找的是某种类型的cron工作。 – 1ftw1 2011-12-16 00:57:07
@Russell你真的想要仔细检查你接受的答案。 – deceze 2011-12-16 01:33:40