web-dev-qa-db-fra.com

Récupère la dernière requête exécutée dans MySQL avec PHP / CodeIgniter

Comment obtenir la dernière requête que j'ai exécutée dans MySQL sous Windows et Linux?

Je travaille avec PHP et CodeIgniter. Dans my_model.php, J'ai:

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

J'ai besoin que la dernière requête soit exécutée juste après l'extrait de code ci-dessus.

Quelqu'un peut-il me dire comment obtenir ma dernière requête?

20
soredive

Utilisation:

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

exemple tiré du manuel sur fonctions d'aide à la requête

50
Damien Pirsy

Dans le fichier config/database.php, le tableau de configuration doit être défini: 'save_queries' => TRUE, s'il est faux, la fonction last_query () ne fonctionne pas.

3
progman

Dans CodeIgniter, il existe une fonction d'assistance $this->db->last_query();.

Cela renverra la chaîne de la dernière requête.

Mais je pense que vous vous demandez peut-être comment obtenir le résultat, auquel cas vous feriez:

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

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

Pour plus d'informations, jetez un œil à exemples de CI .

1
tplaner