Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/12/2008, 14:57
ryusaiken
 
Fecha de Ingreso: diciembre-2008
Mensajes: 1
Antigüedad: 15 años, 4 meses
Puntos: 0
Pregunta problemas con mysqli_fetch_array y mysqli_stmt_fetch no me devuelve nada

Muy buenos dias … tengo el siguiente problema y no se me podrian ayudar

Tengo este store procedure en mi BD MySQL

Código:
Create procedure SP_listarAutores(IN inicio INTEGER)
BEGIN

SET @i=inicio;
PREPARE s FROM "SELECT * FROM autores LIMIT ?,20";
EXECUTE s USING @i;
DEALLOCATE PREPARE s;

END;
Desde PHP lo llamo de esta manera

Código:
$host="localhost";
$usuario="root";
$password="";
$db="Biblio";
	
$link=mysqli_connect($host,$usuario,$password,$db);

$inicio=0;//Con esto el SP me deberia devolver los 20 primeros registros
$rs = mysqli_query($link,"CALL SP_listarAutores ($inicio)");
			
while ($row=mysqli_fetch_array($rs))
{
	$Datos[ ]=$row;
} 
		
mysqli_close($link);
Y al ejecutarlo me sale el siguiente error

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in…

Segun veo creo q el SP no esta retornando ningun valor ya q al reemplazar la linea del $rs por esta (ya no utilizo el SP)

Código:
$rs = mysqli_query($link, “SELECT * FROM autores LIMIT $inicio,20”);
No se genera ningun error y si me devuelve los datos correctamente

Q es lo q esta pasando?? Estare utilizando mal algun mysqli_xxx?? O es q me falta algo implementar algo??

Si ejecuto el SP desde MySQL, este se ejecuta correctamente…el problema es desde PHP
He estado tratando de hacerlo de esta otra forma tb

Código:
$stmt = mysqli_prepare($link, "CALL SP_listarAutores (?)");

$inicio = 0;

mysqli_stmt_bind_param($stmt, "i", $inicio );
//la i es dedibo a q $inicio es un entero
//Solo hay 4 tipos i=integer,d=double,s=string,b=blob… y si se trata de un parametro //especial como por ejem NULL??...NULL no tiene tipo

mysqli_stmt_execute($stmt);

while ($reg=mysqli_stmt_fetch($stmt))
{
       $Datos[ ]=$reg;
}

mysqli_stmt_close($stmt);

mysqli_close($cnn);
No me genera error pero tampoco me devuelve nada…en q estoy fallando??..Cual es, a su criterio y experiencia, la mejor forma de llamar a un SP segun lo expuesto anteriormente??

Salu2