Postgresql 如何显示查询而不使用雄辩的语言执行查询
我想显示一个查询,而不使用Elount执行它。我想写一些像:Postgresql 如何显示查询而不使用雄辩的语言执行查询,postgresql,laravel,laravel-5,eloquent,laravel-5.4,Postgresql,Laravel,Laravel 5,Eloquent,Laravel 5.4,我想显示一个查询,而不使用Elount执行它。我想写一些像: \DB::table('my_table')-> updateOrInsert(['a' => 'b'], ['c' => 'd']); 这是一个生产活动,所以我有点担心直接运行它。有没有办法显示它而不是运行它?您可以通过以下方式查看原始查询: $foo = DB::getQueryLog(); var_dump($foo); 它将执行查询。如果您有查询生成器实例,则可以使用toSql()。由于updateOrI
\DB::table('my_table')-> updateOrInsert(['a' => 'b'], ['c' => 'd']);
这是一个生产活动,所以我有点担心直接运行它。有没有办法显示它而不是运行它?您可以通过以下方式查看原始查询:
$foo = DB::getQueryLog();
var_dump($foo);
它将执行查询。如果您有查询生成器实例,则可以使用
toSql()
。由于updateOrInsert()
方法不返回构建器实例,因此不能以这种方式阻止其执行。相反,您可以将查询放在DB::假装()
闭包中,它应该返回它将执行的查询
\DB::pretend(function() {
\DB::table('my_table')->update(['a' => 'b']);
});
应返回:
[
[
"query" => "update `my_table` set `a` = ?",
"bindings" => [
"b",
],
"time" => 0.01,
],
]
注意:您提供的示例永远不会起作用,因为
insertOrUpdate()
不存在。我相信您正在寻找updateOrInsert()
我认为这是不可能的。这里有一个很好的教程:@Gab这是可能的。看看我的答案。