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

待我称王封你为后i 2023-02-22 03:59 57阅读 0赞

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

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

直接 model 删除

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

根据where条件删除

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

使用 Query 查询删除

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

使用预处理语句删除

方法一

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

方法二

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

  1. $model = $connection->createCommand('DELETE FROM qipa250_user WHERE userid=:userid');
  2. $model->bindParam(':userid', $userid);
  3. // delete user 1
  4. $userid = 1;
  5. $model->execute();
  6. // delete user 2
  7. $userid = 2;
  8. $model->execute();

根据id删除

  1. $user = User::findOne(2);
  2. $user->delete();
  3. 或者
  4. User::findOne(2)->delete();
  5. // 输出语句
  6. // DELETE FROM `qipa250_user` WHERE `id`='2'

deleteAll() 删除多个

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

方法一

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

方法二

  1. User::deleteAll([
  2. 'and',
  3. 'type = :type_id',
  4. ['not in', 'usercategoryid', $categoriesList]
  5. ],
  6. [
  7. ':type_id' => 2
  8. ]);
  9. //Output Query
  10. //DELETE FROM `qipa250_user` WHERE (type = 2) AND (`usercategoryid` NOT IN (1, 2, 3))

发表评论

表情:
评论列表 (有 0 条评论,57人围观)

还没有评论,来说两句吧...

相关阅读