Codeigniter: $this->db->dernière requête(); exécuter une requête?
est-ce que l'exécution de la requête se produit à la clause get_where()
de l'instruction codeigniter active record suivante?
$this->db->select('*');
$q = $this->db->get_where('Contacts', array('id' => $contact_id));
$sql = $this->db->last_query();
ou cela se produit-il une fois que vous appelez le result_array()
?
et est $this->db->last_query();
un moyen fiable pour obtenir la chaîne de requête.
1 réponses
l'exécution de la requête se produit sur toutes les méthodes get comme
$this->db->get('table_name');
$this->db->get_where('table_name',$array);
alors que last_query contient la dernière requête qui a été exécutée
$this->db->last_query();
Si vous voulez obtenir de la chaîne de requête sans exécution, vous devrez le faire. Allez à system/database / DB_active_rec.php supprimer le mot-clé public ou protégé de ces fonctions
public function _compile_select($select_override = FALSE)
public function _reset_select()
Maintenant vous pouvez écrire requête et l'obtenir dans une variable
$this->db->select('trans_id');
$this->db->from('myTable');
$this->db->where('code','B');
$subQuery = $this->db->_compile_select();
réinitialisation de la requête, donc si vous voulez écrire une autre requête, l'objet sera effacé.
$this->db->_reset_select();
Et la chose est faite. Acclamations!!! Remarque : lors de l'utilisation de cette façon, vous devez utiliser
$this->db->from('myTable')
au lieu de
$this->db->get('myTable')
qui exécute la requête.