Làm cách nào để in truy vấn laravel?

Trong bài đăng này, tôi sẽ chỉ cho bạn cách in hoặc nhận truy vấn được thực hiện cuối cùng trong ứng dụng Laravel 8 của bạn. Đôi khi, chúng tôi cần làm điều này để ghi nhật ký hoặc gỡ lỗi và xác định hiệu suất của các truy vấn của chúng tôi là gì

 

May mắn thay, Laravel cung cấp một phương thức để lấy truy vấn được thực thi cuối cùng và tôi sẽ chỉ cho bạn cách

 

Nhận truy vấn cuối cùng trong Laravel Eloquent

Trong ví dụ này, chúng ta sẽ chỉ thêm phương thức toSql[] vào truy vấn hùng hồn của mình. Xem ví dụ bên dưới

$user = User::where['id',1]->toSql[];
dd[$user];

 

Xem bên dưới đầu ra

"select * from `users` where `id` = ?"

 

Ghi lại truy vấn cuối cùng trong Laravel Eloquent

Trong phương pháp này, chúng tôi sẽ ghi lại truy vấn hùng hồn Laravel cuối cùng của chúng tôi. Xem mã ví dụ bên dưới

DB::enableQueryLog[];
$user = User::get[];
$query = DB::getQueryLog[];
dd[$query];

 

đầu ra mẫu

array:1 [▼
  0 => array:3 [▼
    "query" => "select * from `users`"
    "bindings" => []
    "time" => 30.66
  ]
]

 

Gỡ lỗi Truy vấn Eloquent cuối cùng của Laravel

Trong mẫu này, chúng tôi sẽ gỡ lỗi truy vấn hùng hồn cuối cùng của Laravel. Xem mã bên dưới

DB::enableQueryLog[];
$user = User::get[];
$query = DB::getQueryLog[];
$query = end[$query];
dd[$query];

 

đầu ra mẫu

array:3 [▼
  "query" => "select * from `users`"
  "bindings" => []
  "time" => 22.04
]

 

Nhận/In Truy vấn MySQL được thực hiện lần cuối

Trong phần này, chúng tôi sẽ nhận/in truy vấn MySQL được thực hiện cuối cùng. Xem ví dụ sau

\DB::enableQueryLog[];
$users = \DB::table["users"]->get[];
$query = \DB::getQueryLog[];
dd[end[$query]];

 

đầu ra

array:3 [▼
  "query" => "select * from `users`"
  "bindings" => []
  "time" => 26.94
]

 

Bây giờ bạn đã có ý tưởng về cách đăng nhập/gỡ lỗi truy vấn được thực hiện lần cuối trong ứng dụng Laravel của mình. Tôi hy vọng nó sẽ giúp

Trình tạo truy vấn cơ sở dữ liệu cung cấp giao diện thuận tiện, thông thạo để tạo và chạy các truy vấn cơ sở dữ liệu. Nó có thể được sử dụng để thực hiện hầu hết các hoạt động cơ sở dữ liệu trong ứng dụng của bạn và hoạt động trên tất cả các hệ thống cơ sở dữ liệu được hỗ trợ

Ghi chú. Trình tạo truy vấn của Laravel sử dụng liên kết tham số PDO xuyên suốt để bảo vệ ứng dụng của bạn khỏi các cuộc tấn công SQL injection. Không cần xóa các chuỗi được truyền dưới dạng ràng buộc

chọn

Lấy tất cả các hàng từ một bảng

________số 8

Chunking kết quả từ một bảng

DB::table['users']->chunk[100, function[$users]

Bạn có thể ngừng xử lý các khối tiếp theo bằng cách trả lại

"select * from `users` where `id` = ?"
09 từ
"select * from `users` where `id` = ?"
10

DB::table['users']->chunk[100, function[$users]

Truy xuất một hàng từ một bảng

"select * from `users` where `id` = ?"
0

Truy xuất một cột từ một hàng

"select * from `users` where `id` = ?"
1

Truy xuất danh sách các giá trị cột

"select * from `users` where `id` = ?"
5

Phương thức này sẽ trả về một mảng các chức danh vai trò. Bạn cũng có thể chỉ định cột khóa tùy chỉnh cho mảng được trả về

"select * from `users` where `id` = ?"
6

Chỉ định một mệnh đề chọn

"select * from `users` where `id` = ?"
7

Thêm một mệnh đề chọn vào một truy vấn hiện có

"select * from `users` where `id` = ?"
8

Sử dụng toán tử Where

"select * from `users` where `id` = ?"
9

Hoặc Tuyên bố

DB::table['users']->chunk[100, function[$users]

0

Sử dụng ở đâu giữa

DB::table['users']->chunk[100, function[$users]

1

Sử dụng Where Not Between

DB::table['users']->chunk[100, function[$users]

2

Sử dụng Where In với một mảng

DB::table['users']->chunk[100, function[$users]

3

Sử dụng Where Null để tìm bản ghi với giá trị chưa đặt

DB::table['users']->chunk[100, function[$users]

4

Mệnh đề động Where

Bạn thậm chí có thể sử dụng các câu lệnh where "động" để xây dựng trôi chảy các câu lệnh where bằng các phương thức ma thuật

DB::table['users']->chunk[100, function[$users]

5

Sắp xếp theo, theo nhóm và có

DB::table['users']->chunk[100, function[$users]

6

Bù trừ & Giới hạn

DB::table['users']->chunk[100, function[$users]

7

tham gia

Trình tạo truy vấn cũng có thể được sử dụng để viết các câu lệnh nối. Hãy xem các ví dụ sau

Tuyên bố tham gia cơ bản

DB::table['users']->chunk[100, function[$users]

8

Tuyên bố tham gia trái

DB::table['users']->chunk[100, function[$users]

9

Bạn cũng có thể chỉ định các mệnh đề nối nâng cao hơn

DB::table['users']->chunk[100, function[$users]

0

Nếu bạn muốn sử dụng mệnh đề kiểu "where" trong phép nối của mình, bạn có thể sử dụng các phương thức

"select * from `users` where `id` = ?"
11 và
"select * from `users` where `id` = ?"
12 trên phép nối. Thay vì so sánh hai cột, các phương thức này sẽ so sánh cột với một giá trị

DB::table['users']->chunk[100, function[$users]

1

Nâng cao

Nhóm tham số

Đôi khi, bạn có thể cần tạo các mệnh đề where nâng cao hơn, chẳng hạn như "nơi tồn tại" hoặc các nhóm tham số lồng nhau. Trình tạo truy vấn của Laravel cũng có thể xử lý những điều này

DB::table['users']->chunk[100, function[$users]

2

Truy vấn trên sẽ tạo ra SQL sau

DB::table['users']->chunk[100, function[$users]

3

Tồn tại báo cáo

DB::table['users']->chunk[100, function[$users]

4

Truy vấn trên sẽ tạo ra SQL sau

DB::table['users']->chunk[100, function[$users]

5

uẩn

Trình tạo truy vấn cũng cung cấp nhiều phương pháp tổng hợp, chẳng hạn như

"select * from `users` where `id` = ?"
13,
"select * from `users` where `id` = ?"
14,
"select * from `users` where `id` = ?"
15,
"select * from `users` where `id` = ?"
16 và
"select * from `users` where `id` = ?"
17

Sử dụng các phương pháp tổng hợp

DB::table['users']->chunk[100, function[$users]

6

biểu thức thô

Đôi khi bạn có thể cần sử dụng biểu thức thô trong truy vấn. Các biểu thức này sẽ được đưa vào truy vấn dưới dạng chuỗi, vì vậy hãy cẩn thận để không tạo bất kỳ điểm chèn SQL nào. Để tạo một biểu thức thô, bạn có thể sử dụng phương thức

"select * from `users` where `id` = ?"
18

Sử dụng biểu thức thô

DB::table['users']->chunk[100, function[$users]

7

phụ trang

Chèn bản ghi vào bảng

DB::table['users']->chunk[100, function[$users]

8

Chèn bản ghi vào bảng có ID tăng tự động

Nếu bảng có id tăng tự động, hãy sử dụng

"select * from `users` where `id` = ?"
19 để chèn bản ghi và truy xuất id

DB::table['users']->chunk[100, function[$users]

9

Ghi chú. Khi sử dụng PostgreSQL, phương thức insertGetId mong đợi cột tăng tự động được đặt tên là "id"

Chèn nhiều bản ghi vào một bảng

"select * from `users` where `id` = ?"
00

cập nhật

Cập nhật các bản ghi trong một bảng

Tăng hoặc giảm giá trị của một cột

"select * from `users` where `id` = ?"
01

Bạn cũng có thể chỉ định các cột bổ sung để cập nhật

"select * from `users` where `id` = ?"
02

xóa

Xóa các bản ghi trong một bảng

"select * from `users` where `id` = ?"
03

Xóa tất cả các bản ghi khỏi một bảng

"select * from `users` where `id` = ?"
04

Cắt bớt một bảng

"select * from `users` where `id` = ?"
05

đoàn thể

Trình tạo truy vấn cũng cung cấp một cách nhanh chóng để "kết hợp" hai truy vấn với nhau

"select * from `users` where `id` = ?"
06

Phương thức

"select * from `users` where `id` = ?"
50 cũng có sẵn và có cùng chữ ký phương thức như
"select * from `users` where `id` = ?"
51

khóa bi quan

Trình tạo truy vấn bao gồm một vài hàm để giúp bạn thực hiện "khóa bi quan" trên các câu lệnh CHỌN của mình

Làm cách nào để in truy vấn trong laravel?

Làm cách nào để in truy vấn trong laravel? . Phương thức Dump[] sẽ in thông tin truy vấn nhưng nó không dừng việc thực thi tập lệnh. use the dd[] method after toSql[] to print the query in your controller file. Dump[] method will print the query information but it does not stop the execution of the script.

Làm cách nào để in truy vấn SQL cuối cùng trong laravel?

Nhận truy vấn cuối cùng trong Laravel Eloquent .
$user = Người dùng. trong đó['id',1]->toSql[];
ĐB. enableQueryLog[]; . lấy[]; . getQueryLog[];
ĐB. enableQueryLog[]; . lấy[]; . getQueryLog[];

Làm cách nào để nhận truy vấn trong laravel?

Phương thức đầu tiên để nhận truy vấn của một lệnh gọi Eloquent là sử dụng phương thức toSql[] . Phương thức này trả về truy vấn mà không cần chạy truy vấn – tốt nếu bạn không muốn thay đổi dữ liệu và chỉ nhận truy vấn – nhưng phương thức này không hiển thị toàn bộ truy vấn nếu truy vấn của bạn phức tạp hơn hoặc nếu có truy vấn phụ.

Làm cách nào để in truy vấn cuối cùng trong laravel 7?

Ok, trong ví dụ này, chúng ta phải bật nhật ký truy vấn bằng DB. enableQueryLog[] của Trình tạo truy vấn Laravel . enableQueryLog[] sẽ cấp quyền truy cập để lưu trữ tất cả truy vấn thực thi trong bộ đệm và chúng tôi có thể nhận truy vấn đó bằng DB. getQueryLog[]. Trong ví dụ này, bạn sẽ nhận được tất cả nhật ký truy vấn không chỉ kéo dài.

Chủ Đề