2012-05-29 15 views

Respuesta

36

Una solución más bonita es

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

siempre he encontrado que el uso de deleteAll funciona más lento en comparación a DAO – Orlymee

+0

gracias por el consejo –

+4

1 para el modelo basado eliminar, pero una mejor manera es parametrizar la condición: YourUserModel :: model() -> deleteAll ("day! =: date", array ('date' => date ('Ym-d'))); Tampoco necesita el tiempo(), ya que eso está implícito. – Eric

2

probar este ...

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

gracias por el consejo –

+0

¿Funcionará? '$ query' es una cadena, ¡no cualquier objeto! –

10

Mejor parámetros PDO usuario y el comando que también tiene que llaman execute

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

o

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

gracias por el consejo –

+0

PDO es 10 veces más rápido es esta situación! – realtebo

+0

@realtebo todos los casos en esta pregunta usan PDO –

Cuestiones relacionadas