web-dev-qa-db-ja.com

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') . "'");
38
adamors

より良いユーザー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'))
);
12
Imre L

これを試して...

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

クエリビルダーを使用できます

$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

2
Artem