默认情况下,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