Se puede ver el SQL generado?

1,209 views
Skip to first unread message

PolloLetal

unread,
Jan 5, 2011, 11:27:57 AM1/5/11
to CodeIgniter-spanish
Hola gentes, feliz año para todos !!!

Les consulto lo siguiente: es posible ver la consulta sql asi de por
ejemplo un modelo que tenga lo siguiente

function get_movs($firma_id)
{
$this->db->select('*');
$this->db->from('movimientos');
$result = $this->db->get('movimientos');

}

Con PhpMyadmin puede ejecutar consultas e ir haciendo pruebas, pero me
a medida que voy relacionando tablas, la cosa se me complica.

¿Como lo resuelven ustedes?

Gracias totales !

pollo

Julian Magnone

unread,
Jan 5, 2011, 11:36:00 AM1/5/11
to codeignit...@googlegroups.com
Hola:

Podés usar: $this->db->last_query()


O sinó el profiler.

Espero que sirva, saludos!

Julián


2011/1/5 PolloLetal <pollo...@gmail.com>

--
---
Para anular la suscripción a este grupo, envía un mensaje a
codeigniter-spa...@googlegroups.com
Para obtener más opciones, visita este grupo en
http://groups.google.com/group/codeigniter-spanish?hl=es.

PolloLetal

unread,
Jan 5, 2011, 11:58:04 AM1/5/11
to CodeIgniter-spanish

Gracias Julian por la buena onda, aprovecho para consul
Tengo en MY_Controller.php

$this->output->enable_profiler(TRUE);

Donde deberia verlo? ya que no logro verlo.

Y en el caso de $this->db->last_query();
Donde deberia ubicarlo en mi función ?

function get_movs($firma_id)
{
$this->db->select('*');
$this->db->from('movimientos');
$result = $this->db->get('movimientos');

Gracias por la buena onda !!!

pollo

Julian Magnone

unread,
Jan 5, 2011, 12:08:27 PM1/5/11
to codeignit...@googlegroups.com
Hola Pollo,

last_query va después de que hacés el ->get(); de la consulta, o sea, después que se termina de ejecutar la consulta.

enable_profiler te imprime el resultado al final de la página.

Saludos!


2011/1/5 PolloLetal <pollo...@gmail.com>

pollo

Alejus

unread,
Jan 5, 2011, 2:40:00 PM1/5/11
to codeignit...@googlegroups.com
Hola pollo.

Podes ubicarlo en tu controlador, el que deseas la información
Ej.
class Movimientos Controller {

    function __construct()
    {
        parent::__construct();
        $this->output->enable_profiler(true);
    }

O bien podes ponerlo directamente en una vista que tambien funciona.

<?php
    $this->output->enable_profiler(TRUE);
 ?>

La otra es extenderlo a traves de :MY_Controller.php

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class MY_Controller extends Controller {

    function __construct()
    {
        parent::__construct();
         $this->output->enable_profiler(TRUE);
    }
}

/* End of file MY_Controller.php */
/* Location: ./application/libraries/MY_Controller.php */

Saludos


Alejus

unread,
Jan 5, 2011, 2:44:33 PM1/5/11
to codeignit...@googlegroups.com
Me quede pensando en que pasaria si necesitara utilizarlo en varios controladores y buscando en la web encontre esta pagina que da la solucion:

http://codefury.net/2009/11/enable-site-wide-profiling-with-codeigniter/

Y esta que tiene varios trucos interesantes

http://www.gotphp.com/codeigniter-multiple-database-support/5468/


alejo

Fásiko

unread,
Jan 5, 2011, 6:21:51 PM1/5/11
to codeignit...@googlegroups.com

Mario J. Inga Cahuana

unread,
Jan 5, 2011, 11:37:08 AM1/5/11
to codeignit...@googlegroups.com
Activa el profile de CodeIgniter.. te muestra las consultas realizadas, variables, url, etc.. agrega esta línea en tu controlador:
$this->output->enable_profiler(TRUE);

Saludos.

PD: Asegurate desactivar la cache en caso la tengas activada.

--
---
Para anular la suscripción a este grupo, envía un mensaje a
codeigniter-spa...@googlegroups.com
Para obtener más opciones, visita este grupo en
http://groups.google.com/group/codeigniter-spanish?hl=es.



--
##########################################

   Web Developer
   SysAdmin GNU/Linux
   Technical Networking
   D-Link Professional Reseller for Wireless
   Twitter: http://twitter.com/mario21ic
   Blog: http://blog.mario21ic.com/
   Linux Registered User: #467476

##########################################

master

unread,
Jan 10, 2011, 2:01:41 PM1/10/11
to codeignit...@googlegroups.com
Si usas ajax o solo quieres ver la consulta y no la demas informacion a veces no los intereza puedes usar


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

Eso te devuelve la ultima consulta o ejecucion sql que hayas hecho en el sistema.


De: "Mario J. Inga Cahuana" <mari...@gmail.com>
Para: codeignit...@googlegroups.com
Enviados: Miércoles, 5 de Enero 2011 13:37:08
Asunto: Re: [codeigniter-spanish] Se puede ver el SQL generado?
Reply all
Reply to author
Forward
0 new messages