2010-11-25 71 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);