我想将SQL结果限制为超过1周。
以下是它在未准备的常见SQL查询中的外观:
SELECT *
FROM `table_name`
WHERE timestamp < DATE_SUB(NOW(), INTERVAL 7 DAY)
ORDER BY `timestamp` DESC"
但是当我使用PDO并准备所有查询时,我试图这样做:
$query = $db->query('SELECT * FROM `database` WHERE timestamp < DATE_SUB(NOW(), INTERVAL :time DAY) ORDER BY `timestamp` DESC');
$query->bindValue(':time', 7, PDO::PARAM_INT);
$query->execute();
但什么都没发生。 我通常设法让一切正常,但这个有点棘手。我希望你能帮助我。
答案 0 :(得分:1)
你不必准备常数或其他任何你知道干净的东西。只需像往常一样运行查询。
$query = $db->query('SELECT * FROM `database` WHERE timestamp < DATE_SUB(NOW(), INTERVAL 7 DAY) ORDER BY `timestamp` DESC');
$query->execute();
虽然您的原始方法也应该有效 - 您确定数据库中有超过7天的记录吗?