Heim  >  Artikel  >  PHP-Framework  >  So erhalten Sie die SQL-Anweisung mit Parametern mithilfe von toSql in Laravel

So erhalten Sie die SQL-Anweisung mit Parametern mithilfe von toSql in Laravel

藏色散人
藏色散人nach vorne
2020-02-02 19:29:354539Durchsuche

So erhalten Sie die SQL-Anweisung mit Parametern mithilfe von toSql in Laravel

Standardmäßig werden die Parameter in der von toSql erhaltenen SQL wie folgt durch „?“ ersetzt:

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

Die erhaltene SQL-Anweisung lautet:

select * from `tb_user` where `id` = ?

Manchmal möchten wir bestimmte Anweisungen erhalten. Wir können die getBindings-Methode des Builders verwenden:

$builder = DB::table('user')->where('id', 1);
$bindings = $builder->getBindings();
$sql = str_replace('?', '%s', $builder->toSql());
$sql = sprintf($sql, ...$bindings);
dd($sql);

Die erhaltene SQL-Anweisung lautet:

select * from `tb_user` where `id` = 1

Wenn Sie sie häufig verwenden, können Sie die Verwendung in Betracht ziehen Builder Die Makromethode wird zum Builder hinzugefügt:

\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());

Weitere technische Artikel zum Laravel-Framework finden Sie in der Spalte Laravel-Tutorial!

Das obige ist der detaillierte Inhalt vonSo erhalten Sie die SQL-Anweisung mit Parametern mithilfe von toSql in Laravel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen