PHP - Error al traer datos con un procedimiento almacenado

 
Vista:
sin imagen de perfil
Val: 47
Ha aumentado su posición en 5 puestos en PHP (en relación al último mes)
Gráfica de PHP

Error al traer datos con un procedimiento almacenado

Publicado por Diego (37 intervenciones) el 12/06/2018 02:06:53
Buenas noches.

Estoy intentando traer datos de una base mediante procedimientos almacenados.
Los procedimientos almacenados son correctos, pero no logro obtener la respuesta deseada.

Dentro de una función tengo el siguiente código:

1
2
3
4
5
6
7
...
$resultado=$conn->query($sql);
while ($row = $resultado->fetch_array(MYSQLI_ASSOC)) {
        $respuesta=$row;
    }
return $respuesta;
...

Este ejemplo me retorna el siguiente error:

"Fatal error: Uncaught Error: Call to a member function fetch_array() on boolean in..."


NO logro entender como convierto el resultado de la consulta, que es un conjunto de registros, en un array asociativo. La consulta está bien, ya que al probarla independientemente funciona

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 157
Ha aumentado su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

Error al traer datos con un procedimiento almacenado

Publicado por Andres (67 intervenciones) el 12/06/2018 14:07:06
Hasta donde sé no es factible hacerlo directamente, lo mas común es crear una vista en la base de datos que ejecute el procedimiento y luego consultar la vista desde PHP.

Si logras averiguar como ejecutar un procedimiento desde PHP te agredecemos lo publiques aquí.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 47
Ha aumentado su posición en 5 puestos en PHP (en relación al último mes)
Gráfica de PHP

Error al traer datos con un procedimiento almacenado

Publicado por Diego (37 intervenciones) el 12/06/2018 17:02:55
Resuelto:

Esta función está dentro de una clase y la llamo desde otro lugar para que me retorne un conjunto de registros, en este caso es una consulta guardada en en procedimiento almacenado que espera como parametros dos fechas y me devuelve todos los registros entre las fechas indicadas.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Public Function DispoObtenerRangoPorFechas($fecha_desde, $fecha_hasta){
	require_once('../funciones/conexion.php'); //INCLUYO LA CONEXION
	$conexion=New Conexion(); // INSTANCIO LA CONEXION
	$conn=$conexion->conectar(); // CONECTO
	$sql="CALL SP_DispoObtenerRangoPorFechas($fecha_desde, $fecha_hasta)"; //CONSULTA SQL...LLAMO UN SP
	$resultado=$conn->query($sql); //OBTENGO LA RESPUESTA
	$i=0; //CONTADOR PARA EL CICLO
        while($row = mysqli_fetch_assoc($resultado)){
             $respuesta[$i] = $row;
             $i++;
         } //QUEDA ARMADO EL ARRAY ASOCIATIVO
         return $respuesta; // RETORNO EL ARRAY
	mysqli_close($conn); //CIERO LA CONEXION
}

Despues desde el procedimiento desde donde llamo a esta función solo recorro el array...por ejemplo:

1
2
3
4
5
6
7
$dispo= new Dispo(); // INSTANCIO MI CLASE
 
$resultado=$dispo->DispoObtenerRangoPorFechas($fecha_desde, $fecha_hasta); // LLENO LA VARIABLE CON EL RESULTADO DE LA FUNCION, ME RETORNA UN ARRAY ASOCIATIVO
for($i=0;$i<count($resultado);$i++){
	$id=$resultado[$i]['id'];
        echo $Id
}


Espero le sirva a alguien.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Error al traer datos con un procedimiento almacenado

Publicado por xve (6935 intervenciones) el 12/06/2018 19:00:07
Gracias por comentarlo Diego!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar