> PHP 프레임워크 > Laravel > laravel에서 toSql을 사용하여 매개변수가 포함된 SQL 문을 얻는 방법

laravel에서 toSql을 사용하여 매개변수가 포함된 SQL 문을 얻는 방법

藏色散人
풀어 주다: 2020-02-02 19:29:35
앞으로
4560명이 탐색했습니다.

laravel에서 toSql을 사용하여 매개변수가 포함된 SQL 문을 얻는 방법

기본적으로 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
로그인 후 복사
#🎜 🎜# 자주 사용하는 경우 Builder의 매크로 방법을 사용하여 Builder에 추가하는 것을 고려할 수 있습니다.

\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을 방문하세요. 튜토리얼 컬럼!

위 내용은 laravel에서 toSql을 사용하여 매개변수가 포함된 SQL 문을 얻는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:cnblogs.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿