使用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