我有这个问题,我想删除多个表中的一些数据(不使用外键),所以我确实使查询和laravel抛出一个SQL错误,它有我做的查询。所以我复制并粘贴了相同的查询并在MySql中执行它并且它可以工作。我不知道是什么问题。这是代码:
$deleteQuery = "DELETE FROM posts WHERE user_id= " . $user->user_id . ";";
$deleteQuery .= "DELETE FROM settings WHERE user_id= " . $user->user_id . ";";
$deleteQuery .= "DELETE FROM pictures WHERE user_id= " . $user->user_id . ";";
DB::delete($deleteQuery);
我也尝试过:
DB::delete($deleteQuery);
但它不起作用。
我能做什么?
您将多个删除语句放在一个位置。 DB::delete()
函数不支持。
您可以像这样向数据库发送多个删除查询
DB::table("posts")->where("user_id", $userID)->delete();
DB::table("settings")->where("user_id", $userID)->delete();
DB::table("pictures")->where("user_id", $userID)->delete();
或者,如果你真的想一次性做,你可以做这样的事情:
DB::RAW("DELETE FROM posts WHERE user_id= ?;
DELETE FROM settings WHERE user_id= ?;
DELETE FROM pictures WHERE user_id= ?,
array($userID, $userID, $userID));