使用Yii,我想删除所有不是今天的行。如何删除Yii中的行?
我的解决方案好吗?
$query = "delete from `user_login_hash` where `day`!='".(date('Y-m-d',time()))."'";
Yii::app()->db->createCommand($query);
使用Yii,我想删除所有不是今天的行。如何删除Yii中的行?
我的解决方案好吗?
$query = "delete from `user_login_hash` where `day`!='".(date('Y-m-d',time()))."'";
Yii::app()->db->createCommand($query);
更漂亮的解决方案是
YourUserModel::model()->deleteAll("day !='" . date('Y-m-d') . "'");
尝试......
$query = "delete from `user_login_hash` where `day`!='".(date('Y-m-d',time()))."'";
$query->queryAll($query);
感谢您的意见 –
它会工作吗? '$ query'是一个字符串,不是任何对象! –
更好的用户PDO参数和命令你也有叫execute
$query = "delete from `user_login_hash` where `day`<> :date";
$command = Yii::app()->db->createCommand($query);
$command->execute(array('date' => date('Y-m-d')));
或
UserLoginHash::model()->deleteAll(
'day <> :date',
array('date' => date('Y-m-d'))
);
您可以使用查询生成器
$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
我一直发现,使用deleteAll工作较慢相比,DAO – Orlymee
感谢基于删除的建议 –
+1的模式,但更好的方法是参数化条件:YourUserModel :: model() - > deleteAll(“day!=:date”,array('date'=> date('Ym-d')));你也不需要time(),因为这是隐含的。 – Eric