删除多个表中的数据

w41d8nur  于 2021-06-21  发布在  Mysql
关注(0)|答案(2)|浏览(284)

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

但它不起作用。
我能做什么?

h9a6wy2h

h9a6wy2h1#

您正在一个位置放置多个delete语句。这个 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

axkjgtzd

axkjgtzd2#

试试这个,


**DB::statement($deleteQuery);**

在拉威尔, DB::statement() 运行sql查询。
例如:
$query=“更新 table_namefield =值“;
db::语句($query);

相关问题