L'exécution de la requête a-t-elle lieu à la clause get_where()
de l'instruction d'enregistrement active codeigniter 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 la result_array()
?
Et $this->db->last_query();
est un moyen fiable d'obtenir la chaîne de requête.
L'exécution de la requête se produit sur toutes les méthodes get telles que
$this->db->get('table_name');
$this->db->get_where('table_name',$array);
While last_query contient la dernière requête exécutée
$this->db->last_query();
Si vous voulez obtenir une chaîne de requête sans exécution, vous devrez le faire. Aller à system/database/DB_active_rec.php Supprimer les mots clés publics ou protégés de ces fonctions
public function _compile_select($select_override = FALSE)
public function _reset_select()
Maintenant, vous pouvez écrire une 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();
Maintenant, réinitialisez la requête pour que l'objet soit effacé si vous souhaitez écrire une autre requête.
$this->db->_reset_select();
Et la chose est faite. À votre santé!!! Remarque: lorsque vous utilisez cette méthode, vous devez utiliser
$this->db->from('myTable')
au lieu de
$this->db->get('myTable')
qui exécute la requête.