谁能告诉我sql语句有什么问题?我希望它删除时间间隔超过1分钟的所有表行。我的sql语句没有显示任何错误,但它不会删除任何行。
顺便说一句,我使用的是codeigniter框架。
$new_date = date('Y-m-d H:i:s', now());
$query = $this->db->query("DELETE FROM table WHERE 'date/time' < ('$new_date' - INTERVAL 1 minute)");
答案 0 :(得分:4)
您在列标识符周围使用单引号而不是刻度线
$query = $this->db->query("DELETE FROM table WHERE `date/time` < ('$new_date' - INTERVAL 1 minute)");
此外,$new_date = date('Y-m-d H:i:s', now());
应该只是$new_date = date('Y-m-d H:i:s');
,因为PHP 不有一个名为now()
的函数。或者,更好的是,只使用MySQL的内置日期函数:
$query = $this->db->query("DELETE FROM table WHERE `date/time` < (NOW() - INTERVAL 1 minute)");
仅供参考,在列标识符中使用/
并非常见做法。