2011-06-30 51 views
17

如何獲取我在Windows和Linux中在MySQL中運行的最後一個查詢?在PHP中使用PHP/CodeIgniter獲取上次執行的查詢

我正在使用PHP和CodeIgniter。在my_model.php,我有:

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

我需要上面的代碼段後立即執行的最後一個查詢。

誰能告訴我如何得到我最後的查詢?

+0

據我所知,沒有通用的「獲取最後查詢」功能。你需要什麼? –

+1

@Pekka,CodeIgniter有這個內置的:-) –

+0

@火箭啊,夠公平的。 –

回答

1

採取在笨

$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.... 

例子有一個輔助功能$this->db->last_query();

這將返回最後一個查詢的字符串。

但我認爲你可能會問如何獲得的結果,在這種情況下,你會怎麼做:

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

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

欲瞭解更多信息,看看一個CI's examples

4

如果正在調試其它有用的功能是

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

在配置/ database.php中的配置陣列必須設置:「save_queries」 => TRUE,如果是假的不工作的last_query()功能。