2012-05-29 13 views

cevap

36

bir güzel çözüm

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

kullanabilir Hep kullanarak deleteAll silmek tabanlı Modeli için tavsiye – Orlymee

+0

teşekkür DAO kıyasla daha yavaş çalıştığını bulduk ama daha iyi bir yol, durumu parametreleştirmektir: YourUserModel :: model() -> deleteAll ("day! =: date", array ('date' => date ('Ym-d'))); Ayrıca, zamana() gerek yoktur, çünkü bu örtüktür. –

+4

1 için – Eric

2

bu deneyin olduğunu veya

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

Tavsiye için teşekkürler –

+0

Çalışır mı? '$ query' herhangi bir nesne değil bir dizedir! –

10

iyi kullanıcı PDO parametreleri ve komuta siz de execute

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

aramaya ...

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

tavsiye için teşekkürler –

+0

PDO 10 kat daha hızlıdır bu durum! – realtebo

+0

@realtebo bu sorudaki tüm vakaları kullan PDO –