2012-05-29 35 views

Trả lời

36

Một giải pháp đẹp là

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

Tôi luôn cảm thấy rằng việc sử dụng deleteAll làm việc chậm hơn so với DAO – Orlymee

+0

cảm ơn cho lời khuyên –

+4

1 cho Model dựa xóa, nhưng cách tốt hơn là tham số hóa điều kiện: YourUserModel :: model() -> deleteAll ("day! =: date", mảng ('date' => date ('Ym-d'))); Bạn cũng không cần thời gian(), vì đó là ngầm định. – Eric

2

Hãy thử này ...

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

cảm ơn lời khuyên –

+0

Nó có hoạt động không? '$ query' là một chuỗi không phải đối tượng nào! –

10

Better thông số PDO người dùng và trên lệnh bạn cũng phải gọi execute

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

hoặc

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

cảm ơn lời khuyên –

+0

PDO nhanh hơn gấp 10 lần tình huống này! – realtebo

+0

@realtebo tất cả các trường hợp trong câu hỏi này sử dụng PDO –

Các vấn đề liên quan