2010-11-25 72 views
1

我有以下代码:Zend的数据库表中删除()无法正常工作

$time = 60 * 60 * 24 * 3; 

$usersTable = new Application_Model_Db_Users(); 

$where = 'active = false AND registration_time < ' . time() - $time; 
$usersTable->delete($where); 

但是,当它时,它会删除表中,在那里,当我运行

DELETE FROM users 
WHERE active = false 
AND registration_time < 1290500000 
所有行

只有符合条件的符号才会被删除。问题是什么?

+0

您能否确认Zend_Db_Table的计算结果与您显示的查询的计算结果相同?添加一个Zend_Db_Profiler来找出。此外,计算SQL中的时间间隔而不是PHP更有意义。 – Gordon 2010-11-25 14:43:02

回答

3

您只需要用圆括号包住它,以便time() - $ time正确计算。

$where = 'active = false AND registration_time < ' . (time() - $time);