2010-09-03 29 views
34

ví dụ, tôi muốn chuyển đổi điều này;Lấy mã SQL hiện tại của CodeIgniter Active Record

$this->db->get('table'); 

với điều này;

'SELECT * FROM table' 

có chức năng nào cho điều này không? tôi đã tìm kiếm trên hướng dẫn sử dụng của CI nhưng không tìm thấy bất kỳ giải pháp nào.

Trả lời

59

Bạn cũng có thể sử dụng $this->db->get_compiled_select(), sự khác biệt giữa get_compiled_select() và last_query() là get_compiled_select() cung cấp chuỗi truy vấn được tạo ngay cả khi bạn không chạy truy vấn đối với cơ sở dữ liệu.

+0

cảm ơn câu trả lời của bạn, tốt để biết rằng chúng ta có thể thấy mã SQL trước khi chúng tôi nhận được kết quả. – WhoSayIn

+0

Cảm ơn rất nhiều, chức năng đó thực sự hữu ích! –

+6

Tôi chỉ nhận ra rằng nếu bạn sử dụng '_compile_select()', bạn phải sử dụng '$ this-> db -> _ reset_select();' sau khi thực hiện truy vấn. Nếu bạn không làm như vậy, CodeIgniter sẽ không xóa truy vấn và tất cả truy vấn trở đi sẽ không hoạt động. –

32

Hãy thử

echo $this->db->last_query(); 

sau khi bạn chạy Active Record Query của bạn và nó sẽ nhổ ra các SQL liệu nó chạy cho bạn. Tôi thường xuyên sử dụng nó.

+0

cảm ơn câu trả lời của bạn !! đó là những gì tôi tìm kiếm. – WhoSayIn

+0

Câu trả lời hoàn hảo cho câu hỏi, ít phức tạp và trực tiếp đến công việc –

Các vấn đề liên quan