Al usar Yii, quiero eliminar todas las filas que no son de hoy.¿cómo elimino las filas en Yii?
¿Mi solución está bien?
$query = "delete from `user_login_hash` where `day`!='".(date('Y-m-d',time()))."'";
Yii::app()->db->createCommand($query);
Al usar Yii, quiero eliminar todas las filas que no son de hoy.¿cómo elimino las filas en Yii?
¿Mi solución está bien?
$query = "delete from `user_login_hash` where `day`!='".(date('Y-m-d',time()))."'";
Yii::app()->db->createCommand($query);
Una solución más bonita es
YourUserModel::model()->deleteAll("day !='" . date('Y-m-d') . "'");
probar este ...
$query = "delete from `user_login_hash` where `day`!='".(date('Y-m-d',time()))."'";
$query->queryAll($query);
gracias por el consejo –
¿Funcionará? '$ query' es una cadena, ¡no cualquier objeto! –
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'))
);
gracias por el consejo –
PDO es 10 veces más rápido es esta situación! – realtebo
@realtebo todos los casos en esta pregunta usan PDO –
Usted puede utilizar el generador de consultas
$command = Yii::app()->db->createCommand()
->delete('user_login_hash', 'day !=' . date('Y-m-d'));
http://www.yiiframework.com/doc/guide/1.1/en/database.query-builder#sec-15
siempre he encontrado que el uso de deleteAll funciona más lento en comparación a DAO – Orlymee
gracias por el consejo –
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