Foros del Web » Programando para Internet » PHP » CodeIgniter »

Llamar un stored procedure desde php con codeigniter

Estas en el tema de Llamar un stored procedure desde php con codeigniter en el foro de CodeIgniter en Foros del Web. Saludos. Estoy trabajando con codeigniter, y para llamar un procedimiento almacenado que lista una tabla a travez de parametros, utilizo el siguiente código: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); ...
  #1 (permalink)  
Antiguo 14/06/2012, 15:52
 
Fecha de Ingreso: junio-2012
Mensajes: 19
Antigüedad: 11 años, 10 meses
Puntos: 1
Pregunta Llamar un stored procedure desde php con codeigniter

Saludos.
Estoy trabajando con codeigniter, y para llamar un procedimiento almacenado que lista una tabla a travez de parametros, utilizo el siguiente código:

Código PHP:
Ver original
  1. $data = $this->db->query("CALL usuario_listar('".$num."','".$offset."','".$campo_orden."','".$tipo_orden."','".$usuario."')");
  2.        
  3.         return $data;

En cuanto a listar no tengo problemas, pero al llamar un procedimiento almacenado que es para insertar me sale el error de DBdriver. Tengo el config.php con mysqli.

He tratado de llamar un procedimiento almacenado como lo indica la guia de codeigniter y no funciona el listar y el insertar.

Código PHP:
Ver original
  1. $data = $this->db->call_function('usuario_listar', $num,$offset,$campo_orden,$tipo_orden,$usuario);
  2.  
  3.        
  4.         return $data;

Espero su ayuda.
Agredesco de antemano su gentil ayuda.
  #2 (permalink)  
Antiguo 14/06/2012, 16:45
 
Fecha de Ingreso: junio-2012
Mensajes: 19
Antigüedad: 11 años, 10 meses
Puntos: 1
Respuesta: Llamar un stored procedure desde php con codeigniter

Estimados amigos del foro, encontre una solución a mi problema.
Todo lo que tenia que hacer fue modificar la función _execute() del archivo:
system/database/mysqli/mysqli_driver.php

Debes remplazar el código de la función _execute() por el siguiente:
Código PHP:
Ver original
  1. // Free result from previous query
  2.        @mysqli_free_result($this->result_id);
  3.            
  4.        $sql = $this->_prep_query($sql);
  5.    
  6.        // get a result code of query (), can be used for test is the query ok
  7.        $retval = @mysqli_multi_query($this->conn_id, $sql);
  8.    
  9.        // get a first resultset
  10.        $firstResult = @mysqli_store_result($this->conn_id);
  11.    
  12.        // free other resultsets
  13.        while (@mysqli_next_result($this->conn_id)) {
  14.           $result = @mysqli_store_result($this->conn_id);
  15.           @mysqli_free_result($result);

Espero le pueda servir.

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:40.