Làm thế nào để lấy câu truy vấn thô ...
Làm thế nào để lấy câu truy vấn thô ...
Để lấy câu truy vấn SQL thô từ Query Builder trong Laravel dưới dạng chuỗi, bạn có thể sử dụng một số phương pháp khác nhau. Dưới đây là một số cách phổ biến:
Sử dụng phương thức toSql()
để lấy câu truy vấn mà không thực thi nó. Phương thức này trả về câu truy vấn với các dấu hỏi chấm (?) thay cho các giá trị thực tế của tham số[5].
echo DB::table('users')->toSql();
Đoạn mã trên sẽ trả về chuỗi: select * from users
.
Kích hoạt nhật ký truy vấn (query log) bằng cách sử dụng phương thức enableQueryLog()
, sau đó bạn có thể lấy nhật ký truy vấn bằng cách sử dụng getQueryLog()
[4].
DB::enableQueryLog();
// Thực thi truy vấn
DB::table('users')->get();
// Lấy nhật ký truy vấn
dd(DB::getQueryLog());
Để lấy câu truy vấn SQL thô kèm theo các giá trị tham số, bạn có thể sử dụng hàm vsprintf()
để kết hợp phương thức toSql()
và getBindings()
[3].
$query = DB::table('users')->where('id', '=', 1);
$rawSql = vsprintf(str_replace(['?'], ['\'%s\''], $query->toSql()), $query->getBindings());
echo $rawSql;
Laravel 10.15 cung cấp một tính năng mới là phương ...
senior
Chưa có bình luận nào