2012-05-29 17 views

risposta

36

Una soluzione più bella è

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

Ho sempre trovato che l'uso di CancTutti funziona più lentamente rispetto a DAO – Orlymee

+0

grazie per il consiglio –

+4

+1 per il modello basato eliminare, ma un modo migliore è di parametrizzare la condizione: YourUserModel :: model() -> deleteAll ("day! =: date", array ('date' => date ('Ym-d'))); Inoltre non è necessario il tempo(), poiché ciò è implicito. – Eric

2

Prova questa ...

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

grazie per il consiglio –

+0

Funzionerà? '$ query' è una stringa non un oggetto! –

10

Meglio parametri PDO utente e a comando si hanno anche per chiamare execute

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

oppure

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

grazie per il consiglio –

+0

DOP è 10 volte più veloce è questa situazione! – realtebo

+0

@realtebo tutti i casi in questa domanda utilizzano PDO –

Problemi correlati