2011-06-30 50 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()功能。