기본적으로 toSql로 얻은 SQL의 매개변수는 다음과 같이 "?"로 대체됩니다.
DB::table('user')->where('id', 1)->toSql();
얻은 SQL은 명령문은 다음과 같습니다:
select * from `tb_user` where `id` = ?
때때로 특정 명령문을 얻고 싶을 경우 빌더의 getBindings 메소드를 사용할 수 있습니다.
$builder = DB::table('user')->where('id', 1); $bindings = $builder->getBindings(); $sql = str_replace('?', '%s', $builder->toSql()); $sql = sprintf($sql, ...$bindings); dd($sql);
얻은 SQL 문은 다음과 같습니다:
select * from `tb_user` where `id` = 1
\Illuminate\Database\Query\Builder::macro('sql', function () { $bindings = $this->getBindings(); $sql = str_replace('?', '%s', $this->toSql()); return sprintf($sql, ...$bindings); }); dd(DB::table('user')->where('id', 1)->sql());
laravel을 방문하세요. 튜토리얼 컬럼!
위 내용은 laravel에서 toSql을 사용하여 매개변수가 포함된 SQL 문을 얻는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!