2011-06-30 34 views
17

Làm cách nào để có được truy vấn cuối cùng mà tôi đã chạy trong MySQL trong cả Windows và Linux?Nhận truy vấn được thực thi cuối cùng trong MySQL bằng PHP/CodeIgniter

Tôi đang làm việc với PHP và CodeIgniter. Trong my_model.php, tôi có:

$query1 = (...something...); 
$query2 = (...something...); 
$variables = (.... something ....); 
$this->db->query(" $query1 ... $variables .. $query2", array($variables, ...)); 

Tôi cần truy vấn cuối cùng được thực thi ngay sau đoạn mã trên.

Bất kỳ ai có thể cho tôi biết làm cách nào để có được truy vấn cuối cùng của mình?

+0

Theo như tôi biết, không có chức năng "truy vấn cuối cùng" chung. Mày cần nó để làm gì? –

+1

@Pekka, CodeIgniter đã tích hợp sẵn :-) –

+0

@Rocket ah, đủ công bằng. –

Trả lời

36

Sử dụng:

$this->db->last_query(); 

Returns the last query that was run (the query string, not the result). Example: 
$str = $this->db->last_query(); 

// Produces: SELECT * FROM sometable.... 

dụ lấy từ tài liệu trên query helper functions

1

Trong CodeIgniter có một hàm helper $this->db->last_query();.

Điều này sẽ trả lại chuỗi truy vấn cuối cùng.

Nhưng tôi nghĩ rằng bạn có thể được hỏi làm thế nào để có được kết quả, trong trường hợp bạn muốn làm:

$query1 = (...something...); 
$query2 = (...something...); 
$variables = (.... something ....); 
$query = $this->db->query(" $query1 ... $variables .. $query2", array($variables, ...)); 

foreach ($query->result() as $row) { 
//code goes here 
} 

Để biết thêm thông tin, hãy tìm kiếm một CI's examples.

4

chức năng hữu ích khác nếu bạn đang gỡ lỗi là

mysql_errno(); // Returns the error number of the last MySQL operation 3 
mysql_error(); // Returns the error description of the last MySQL operation 
mysql_info(); // Returns information about the last query 
1

Trong config/database.php mảng cấu hình phải được thiết lập: 'save_queries' => TRUE, nếu nó là sai không hoạt động đúng last_query() chức năng.

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