如何删除Yii中的行?

Ion*_*ian 10 yii delete-row

使用Yii,我想删除今天不是的所有行.

我的解决方案好吗?

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

Yii::app()->db->createCommand($query);
Run Code Online (Sandbox Code Playgroud)

ada*_*ors 38

更漂亮的解决方案是

YourUserModel::model()->deleteAll("day !='" . date('Y-m-d') . "'");
Run Code Online (Sandbox Code Playgroud)

  • 基于模型的删除+1,但更好的方法是参数化条件:YourUserModel :: model() - > deleteAll("day!=:date",array('date'=> date('Ym-d') ))); 你也不需要time(),因为那是隐含的. (5认同)
  • 我总是发现使用deleteAll与DAO相比工作得更慢 (2认同)

Imr*_*e L 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')));
Run Code Online (Sandbox Code Playgroud)

要么

UserLoginHash::model()->deleteAll(
    'day <> :date',
    array('date' => date('Y-m-d'))
);
Run Code Online (Sandbox Code Playgroud)