使用PHP / CodeIgniter在MySQL中获取最后执行的查询

时间:2011-06-30 14:33:58

标签: php mysql codeigniter

如何在Windows和Linux中运行我在MySQL中运行的最后一个查询?

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

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

我需要在上面的代码段之后执行最后一次查询。

任何人都可以告诉我如何获得我的上一次查询?

4 个答案:

答案 0 :(得分:46)

使用:

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

示例摘自query helper functions

上的手册

答案 1 :(得分: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

答案 2 :(得分:2)

在config / database.php中,必须设置config数组:'save_queries'=>是,如果为false则不使用last_query()函数。

答案 3 :(得分:1)

在CodeIgniter中有一个辅助函数$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