我正在尝试删除20分钟后过期的记录,该列包含时间戳time()+1200
(向前20分钟)。
执行此查询时:
$sql = "DELETE FROM " . SESSIONS_TABLE . "
WHERE session_expire >= " . time() . "
AND session_open = 1";
所有未通过时间戳的记录仍然会被删除...它是怎么做到的?
答案 0 :(得分:7)
您可能希望删除少的记录而不是time()
。
答案 1 :(得分:2)
您的WHERE条件不正确。你需要使用..
WHERE session_expire <= " . time() . "
...否则,您将删除在提供的时间后设置为的会话。
此外,如果数据库服务器的时钟位于同一时区,您可以简单地使用MySQL NOW功能。
即:
WHERE session_expire <= NOW()