2012-05-29 38 views

回答

36

更漂亮的解決方案是

YourUserModel::model()->deleteAll("day !='" . date('Y-m-d') . "'"); 
+2

我一直髮現,使用deleteAll工作較慢相比,DAO – Orlymee

+0

感謝基於刪除的建議 –

+4

+1的模式,但更好的方法是參數化條件:YourUserModel :: model() - > deleteAll(「day!=:date」,array('date'=> date('Ym-d')));你也不需要time(),因爲這是隱含的。 – Eric

2

嘗試......

$query = "delete from `user_login_hash` where `day`!='".(date('Y-m-d',time()))."'"; 
         $query->queryAll($query); 
+0

感謝您的意見 –

+0

它會工作嗎? '$ query'是一個字符串,不是任何對象! –

10

更好的用戶PDO參數和命令你也有叫execute

$query = "delete from `user_login_hash` where `day`<> :date"; 
$command = Yii::app()->db->createCommand($query); 
$command->execute(array('date' => date('Y-m-d'))); 

UserLoginHash::model()->deleteAll(
    'day <> :date', 
    array('date' => date('Y-m-d')) 
); 
+2

感謝您的意見 –

+0

PDO是這種情況快10倍! – realtebo

+0

@realtebo在這個問題中的所有案例使用PDO –