not insert_id affect php mysql codeigniter

insert_id - Obtenga la última consulta ejecutada en MySQL con PHP/CodeIgniter



this-> db-> insert_id() (4)

¿Cómo puedo obtener la última consulta que ejecuté en MySQL tanto en Windows como en Linux?

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

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

Necesito que la última consulta se ejecute justo después del fragmento de código anterior.

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


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

Esto devolverá la cadena de la última consulta.

Pero creo que podrías estar preguntando cómo obtener el resultado, en cuyo caso harías:

$query1 = ( ...something... ); $query2 = ( ...something... ); $variables = ( .... something .... ); $query = $this->db->query(" $query1 ... $variables .. $query2", array( $variables, ... )); foreach ($query->result() as $row) { //code goes here }

Para más información, eche un vistazo a los ejemplos de un CI .


En config / database.php, la matriz de configuración debe configurarse: ''save_queries'' => TRUE, si es falso, no está funcionando la función last_query ().


Otras funciones útiles si estás 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


Utilizar:

$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 funciones de ayuda de consultas.