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

230 篇文章 9 订阅
42 篇文章 0 订阅

直接 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();

根据id删除

$user = User::findOne(2);
$user->delete();
或者
User::findOne(2)->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))
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值