11

使用 Yii,我想删除所有不是从今天开始的行。

我的解决方案好吗?

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

Yii::app()->db->createCommand($query);
4

4 回答 4

40

一个更漂亮的解决方案是

YourUserModel::model()->deleteAll("day !='" . date('Y-m-d') . "'");
于 2012-05-29T13:38:23.527 回答
12

更好的用户 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'))
);
于 2012-05-29T18:30:28.867 回答
2

尝试这个...

 $query = "delete from `user_login_hash` where `day`!='".(date('Y-m-d',time()))."'";
                        $query->queryAll($query);
于 2012-05-29T13:43:03.177 回答
2

您可以使用查询生成器

$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

于 2015-05-20T12:08:00.727 回答