2011-06-30 73 views
17

¿Cómo puedo obtener la última consulta que ejecuté en MySQL tanto en Windows como en Linux?Obtener la última consulta ejecutada en MySQL con PHP/CodeIgniter

Estoy trabajando con PHP y CodeIgniter. En my_model.php, que tengo:

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

necesito la última consulta ejecutada justo después del código anterior.

¿Alguien me puede decir cómo puedo obtener mi última consulta?

+0

Hasta donde yo sé, no hay una función genérica de "obtener la última consulta". ¿Para qué lo necesitas? –

+1

@Pekka, CodeIgniter tiene esto incorporado :-) –

+0

@Rocket ah, es suficiente. –

Respuesta

36

Uso:

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

ejemplo tomado del manual sobre query helper functions

1

En CodeIgniter hay una función auxiliar $this->db->last_query();.

Esto devolverá la cadena de la última consulta.

Pero creo que se puede preguntar cómo obtener el resultado, en cuyo caso podría hacer:

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

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

Para obtener más información, miren una CI's examples.

4

Otras funciones útiles si su depurando son

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

En el config/database.php la matriz de configuración se debe establecer: 'save_queries' => TRUE, si es falso que no trabaja el last_query() función.

Cuestiones relacionadas