Gỡ lỗi truy vấn cơ sở dữ liệu tùy chỉnh


8

Có một cách thuận tiện để yêu cầu một đối tượng cơ sở dữ liệu cụ thể in truy vấn của nó không?

Thỉnh thoảng, tôi viết một DBTNG db_op () trong một mô-đun và đến nay, tôi thường không nhận được các truy vấn đúng.

Tôi biết rằng devel có thể xuất nhật ký truy vấn, nhưng đó là tất cả các truy vấn, trong tình huống này, là một vấn đề thường xuyên hơn không.

tôi muốn làm

$result = db_select('node', 'n')->fields('n')->execute();
dpm($result->queryWithParameters);
dpm($result->finalQuery);

Câu trả lời:


13

Có một dpq()chức năng trong mô-đun phát triển dường như đáp ứng nhu cầu này.

In một chuỗi SQL từ một đối tượng Truy vấn DBTNG. Bao gồm các đối số được trích dẫn.


5
Tôi sẽ cung cấp +100 này nếu tôi có thể, chưa bao giờ thấy chức năng đó trước đây
Clive

3
Bạn có thể đã có, nếu bạn cung cấp một tiền thưởng. ;)
kiamlaluno

2

Tôi biết đây là một câu hỏi cũ nhưng hy vọng câu trả lời này có thể hữu ích cho những người khác: về cơ bản lõi Drupal có lớp DatabaseLog riêng . Bạn có thể sử dụng nó trong trường hợp bạn không có sẵn mô-đun Devel (như có thể gỡ lỗi sản xuất các truy vấn chậm?):

Database::startLog('my_custom_key');
// do some SQL operations here...
// print the queries
print_r(Database::getLog('my_custom_key'));
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.