问题
Using Yii, I want to delete all the rows that are not from today.
Is my solution ok ?
$query = "delete from `user_login_hash` where `day`!='".(date('Y-m-d',time()))."'";
Yii::app()->db->createCommand($query);
回答1:
A prettier solution is
YourUserModel::model()->deleteAll("day !='" . date('Y-m-d') . "'");
回答2:
Better user PDO parameters and on command you also have to call execute
$query = "delete from `user_login_hash` where `day`<> :date";
$command = Yii::app()->db->createCommand($query);
$command->execute(array('date' => date('Y-m-d')));
or
UserLoginHash::model()->deleteAll(
'day <> :date',
array('date' => date('Y-m-d'))
);
回答3:
Try this...
$query = "delete from `user_login_hash` where `day`!='".(date('Y-m-d',time()))."'";
$query->queryAll($query);
回答4:
You may use query builder
$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
来源:https://stackoverflow.com/questions/10800256/how-do-i-delete-rows-in-yii