学习yii2框架删除数据库操作的方法
学习yii2框架删除数据库操作的方法
- 直接 model 删除
- 根据where条件删除
- 使用 Query 查询删除
- 使用预处理语句删除
- 方法一
- 方法二
- 根据id删除
- 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();
根据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))
还没有评论,来说两句吧...