删除多个表格中的数据

问题描述 投票:-1回答:1

我有这个问题,我想删除多个表中的一些数据(不使用外键),所以我确实使查询和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);

但它不起作用。

我能做什么?

mysql laravel laravel-5.5
1个回答
1
投票

您将多个删除语句放在一个位置。 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));

查看查询构建器文档:https://laravel.com/docs/5.6/queries#deletes

© www.soinside.com 2019 - 2024. All rights reserved.