直接 model 刪除
$model = User::find($id); $model->delete();
帶有條件的刪除
$connection ->createCommand() ->delete('tbl_user', 'status = 0') ->execute();
使用 Query 查詢刪除
$connection ->createCommand('DELETE FROM tbl_user WHERE userid=:userid') ->execute();
使用預處理語句刪除
方法一
$model = $connection->createCommand('DELETE FROM tbl_user WHERE userid=:userid'); $model->bindParam(':userid', $userid); $userid = 5; $model->execute();
方法二
在 Yii2 使用預處理語句刪除多個用戶。
$model = $connection->createCommand('DELETE FROM tbl_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 `tbl_user` WHERE `id`='2'
deleteAll() 刪除多個
如果你不指定任何條件下,該方法將刪除表中的所有行。例如刪除用戶表中狀態條件是 active 和年齡大於20的用戶。
方法一
User::deleteAll('status = :status AND age > :age', [':age' => 20, ':status' => 'active']); //Output Query //DELETE FROM `tbl_user` WHERE status = 'active' AND age > 20
方法二
User::deleteAll([ 'and', 'type = :type_id', ['not in', 'usercategoryid', $categoriesList] ], [ ':type_id' => 2 ]); //Output Query //DELETE FROM `tbl_user` WHERE (type = 2) AND (`usercategoryid` NOT IN (1, 2, 3))