laravel 中 获取带参数的sql语句

默认情况下,toSql 获取到的 sql 里面的参数使用 "?" 代替的,如下:

DB::table('user')->where('id', 1)->toSql();

得到的结果是:select from `users` where `id` = ?

如果想得到具体的sql语句

$query = DB::table('user')->where('id', 1);

$bindings = $query->getBindings();

$sql str_replace('?''%s', $query->toSql());

$sql = sprintf($sql, ...$bindings);

dd($sql);

得到的结果是:select from `users` where `id` = 1

你可能感兴趣的:(laravel 中 获取带参数的sql语句)