update_batch update not left example php mysql codeigniter activerecord

php - not - update codeigniter example



Consulta de eco antes de la ejecuciĆ³n y sin ejecuciĆ³n en Codeigniter Active Record (4)

Estoy buscando una forma de ver la cadena generada de la consulta pero sin ejecutarla.

Tenga en cuenta que la consulta no se ha ejecutado antes. (No quiero $this->db->last_query(); )

Espero que haya un método con un nombre como $this->db->echo_query_string($table_name = ''''); para usar exactamente como $this->db->get($table_name = ''''); PERO LA ÚNICA DIFERENCIA ES QUE get() ejecuta el código, pero echo_query_string() simplemente hace eco de la cadena de consulta sin ejecución .


A partir de la versión 3 de Codeigniter, consulte this url y también a this .

  • echo $this->db->update_string(); O echo $this->db->get_compiled_update();
  • echo $this->db->insert_string(); O $this->db->get_compiled_insert();
  • echo $this->db->get_compiled_delete();
  • echo $this->db->get_compiled_select();

Agregué este pequeño método en DB_active_rec.php

function return_query() { return $this->_compile_select(); }

Uso

$this->db->select(''id,user_name'')->from(''user'')->where(''id'',1); $string = $this->db->return_query(); echo $string;

Resultado

SELECT `id`, `user_name` FROM (`user`) WHERE `id` = 1

De esta manera, está obligado a usar

$this->db->from()

En lugar de

$this->db->get()

Que ejecuta la consulta


No necesita cambiar ningún archivo en codeigniter porque ya proporciona un método para hacerlo.

Utilizando

echo $this->db->last_query();

Producirá

select * from some_table...

Y esto es todo.


Puede ver la consulta compilada por cualquiera de estas funciones

/* SELECT */ $this->db->_compile_select(); /* INSERT */ $this->db->_insert(); /* UPDATE */ $this->db->_update();