simple_query()
es el único método de base de datos en CodeIgniter que se comporta como usted ha señalado. Como dice la documentación:"La mayoría de los usuarios rara vez usarán esta función".
Con algunas excepciones, todos los demás métodos de Query Builder devuelven un DB_query_builder
instancia un CI_DB_result
objeto o, en el caso de consultas de tipo "escribir", un valor booleano que indica éxito o fracaso. Las pocas excepciones devuelven un número entero, cadena o mixto (un valor o FALSO).
Todos los métodos que aceptan valores de entrada escapan (u opcionalmente no escapan) de los valores proporcionados.
Si bien Query Builder (QB) es una gran herramienta, a menudo no es necesario. Usando $this->db->query('your statement here');
es frecuentemente más eficiente. Comprenda que el objetivo de QB es crear una cadena que se use literalmente en una llamada a db->query('a query string');
.
Así que en lugar de escribir todo esto...
$this->db->select('id, name, email');
$this->db->from('customers');
$this->db->where('id', $id)
$this->db->where('active', $is_active)
$query = $this->get();
$result = $query->result();
Escribir lo siguiente produce exactamente los mismos resultados que el anterior porque proporciona directamente la cadena de consulta que QB creó en el código anterior. (La consulta también se escapa por completo). Pero ejecuta una tonelada menos de código para llegar allí. (Con Menos tipeo.)
$query = $this->db->query("Select id, name, email from customers where id = ? and active = ?", [$id, $is_active]);
$result = $query->result();
Este es un ejemplo del uso de Enlace de consulta
Estudiar el código fuente central (principalmente en archivos de 'controlador') le mostrará dónde usar simple_query()
es apropiado y útil.