ホームページ > PHPフレームワーク > Laravel > laravelでtoSqlを使用してパラメータ付きのSQL文を取得する方法

laravelでtoSqlを使用してパラメータ付きのSQL文を取得する方法

藏色散人
リリース: 2020-02-02 19:29:35
転載
4581 人が閲覧しました

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
ログイン後にコピー

これを頻繁に使用する場合は、ビルダー マクロメソッドがビルダーに追加されます。

\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フレームワークに関連する技術的な記事については、laraveltutorial列をご覧ください。

以上がlaravelでtoSqlを使用してパラメータ付きのSQL文を取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:cnblogs.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート