Je cherche un moyen de voir la chaîne générée de la requête mais sans l'exécutant.
Notez que la requête n'a pas été exécutée auparavant. (Je ne veux pas $this->db->last_query();
)
J'espère qu'une méthode portant un nom tel que $this->db->echo_query_string($table_name = '');
sera utilisée exactement comme $this->db->get($table_name = '');
MAIS LA SEULE DIFFÉRENCE SERAIT QUE get()
exécute le code, mais echo_query_string()
répète simplement la chaîne de requête sans exécution .
Vous pouvez voir la requête compilée par l'une de ces fonctions
/* SELECT */ $this->db->_compile_select();
/* INSERT */ $this->db->_insert();
/* UPDATE */ $this->db->_update();
J'ai ajouté cette petite méthode dans DB_active_rec.php
function return_query()
{
return $this->_compile_select();
}
Usage
$this->db->select('id,user_name')->from('user')->where('id',1);
$string = $this->db->return_query();
echo $string;
Résultat
SELECT `id`, `user_name` FROM (`user`) WHERE `id` = 1
De cette façon, vous êtes obligé d'utiliser
$this->db->from()
Au lieu de
$this->db->get()
Qui exécute la requête
Vous pouvez utiliser certaines méthodes public pour obtenir des requêtes SQL
$sql = $this->db->get_compiled_select()
$sql = $this->db->get_compiled_insert()
$sql = $this->db->get_compiled_update()
$sql = $this->db->get_compiled_delete()