学习yii2框架删除数据库操作的方法

    技术2022-07-11  87

    学习yii2框架删除数据库操作的方法

    直接 model 删除根据where条件删除使用 Query 查询删除使用预处理语句删除方法一方法二 查找并且删除deleteAll() 删除多个方法一方法二

    直接 model 删除

    $model = User::find($id); $model->delete();

    根据where条件删除

    $connection ->createCommand() ->delete('qipa250_user', 'status = 0') ->execute();

    使用 Query 查询删除

    $connection ->createCommand('DELETE FROM qipa250_user WHERE userid=:userid') ->execute();

    使用预处理语句删除

    方法一

    $model = $connection->createCommand('DELETE FROM qipa250_user WHERE userid=:userid'); $model->bindParam(':userid', $userid); $userid = 5; $model->execute();

    方法二

    在 Yii2 使用预处理语句删除多个用户。

    $model = $connection->createCommand('DELETE FROM qipa250_user WHERE userid=:userid'); $model->bindParam(':userid', $userid); // delete user 1 $userid = 1; $model->execute(); // delete user 2 $userid = 2; $model->execute();

    查找并且删除

    $user = User::findOne(2); $user->delete(); // 输出语句 // DELETE FROM `qipa250_user` WHERE `id`='2'

    deleteAll() 删除多个

    如果你不指定任何条件下,该方法将删除表中的所有行。例如删除用户表中状态条件是 active 和年龄大于20的用户。

    方法一

    User::deleteAll('status = :status AND age > :age', [':age' => 20, ':status' => 'active']); //Output Query //DELETE FROM `qipa250_user` WHERE status = 'active' AND age > 20

    方法二

    User::deleteAll([ 'and', 'type = :type_id', ['not in', 'usercategoryid', $categoriesList] ], [ ':type_id' => 2 ]); //Output Query //DELETE FROM `qipa250_user` WHERE (type = 2) AND (`usercategoryid` NOT IN (1, 2, 3))
    Processed: 0.010, SQL: 9