Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] stored procedures y php problema

Estas en el tema de stored procedures y php problema en el foro de PHP en Foros del Web. hola tengo un codigo muy sencillo que es el siguiente Código: <?php $link = mysqli_connect('localhost', 'root', '', 'pruebas'); echo "Conexión exitosa!"; $query = 'CALL retorna()'; ...
  #1 (permalink)  
Antiguo 11/11/2015, 02:57
 
Fecha de Ingreso: julio-2012
Ubicación: en mi casa
Mensajes: 37
Antigüedad: 12 años, 4 meses
Puntos: 0
Exclamación stored procedures y php problema

hola tengo un codigo muy sencillo que es el siguiente
Código:
<?php
    $link = mysqli_connect('localhost', 'root', '', 'pruebas');
   				
    echo "Conexión exitosa!";
    
   
    
    $query = 'CALL retorna()';
    $result = mysqli_query($link, $query);
    

while ($aTmp = mysqli_fetch_array($result,MYSQLI_NUM)){

printf ("%d (%s)\n", $roaTmpw[0], $aTmp[1]); 

}
   
    
?>
lo que quiero hacer es leer de un sp una consulta de select * from prueba que solo tiene 2 columnas.. pero no se como usar el sp... si es asi o me falta algo?
sale esto cuando lo ejecuto
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in C:\xampp\htdocs\pruebas\pruebaconexion.php on line 12


Editado:
ya tambien probe con multiquery asi
Código:
<?php
    $link = mysqli_connect('localhost', 'root', '', 'pruebas');
   				
    echo "Conexión exitosa!";
    
   
    
    $query = 'CALL retorna()';
    //$result = 
    //$res= mysqli_query($link, $query);
    $res = mysqli_multi_query($link, $query);
    //
    
    
    echo $res[1];
   
    
?>
pero ahora no muestra nad en la pantalla

Última edición por atom182; 11/11/2015 a las 03:30
  #2 (permalink)  
Antiguo 11/11/2015, 03:47
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 2 meses
Puntos: 214
Respuesta: stored procedures y php problema

Saludo
El primer código funciona correctamente (cambiando $roaTmpw[0] por $aTmp[0]),
en cuanto al segundo, falta implementación.

¿Sí el sp se ejecuta desde phpmyadmin, trae correctamente los datos?
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #3 (permalink)  
Antiguo 11/11/2015, 05:02
 
Fecha de Ingreso: julio-2012
Ubicación: en mi casa
Mensajes: 37
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: stored procedures y php problema

asi es.. cuando lo ejecuto trae todo los registros de mi bd...
pero por alguna razon me da el error... no se porque...
lo unico que quiero es q me regrese todos los registros..
puedo hacerlo bien con la ejecucion de datos directa, pero
en mi proyecto me lo pidoeron con sp.. y hay no entiendo como sacar los datos

acabo de prbar otravez el primero pero aun asi me da le error
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in
  #4 (permalink)  
Antiguo 11/11/2015, 17:47
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 2 meses
Puntos: 214
Respuesta: stored procedures y php problema

Saludo
Pues que raro, ¿el sp està en la base que se selecciona al conectarse? ¿Y se llama tal cual?
A mì me funciona sin problema.

¿Por sì acaso, que tiene el sp?

¿Cuál es el contenido del sp?
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com

Última edición por mortiprogramador; 11/11/2015 a las 19:22
  #5 (permalink)  
Antiguo 11/11/2015, 19:26
 
Fecha de Ingreso: julio-2012
Ubicación: en mi casa
Mensajes: 37
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: stored procedures y php problema

si... de hecho en mi phpmyadmin lo ejecuto sin problema y me da el resultado,
yo tampoco entiendo porque no me da los resultados
te sorprendera que el procedure es el siguiente

create procedure retora()
begin
Select * from tabla1;
end


ese es todo mi procedure... no recibe parametros, no regresa nada, solo es un select

no creo q tenga q ver que tengo mucha tablas en esa misma base de datos o si?
  #6 (permalink)  
Antiguo 11/11/2015, 20:15
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 2 meses
Puntos: 214
Respuesta: stored procedures y php problema

Saludo
El problema es que el sp se llama retora,
pero en el llamado en php se usa retorna.
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #7 (permalink)  
Antiguo 11/11/2015, 21:15
 
Fecha de Ingreso: julio-2012
Ubicación: en mi casa
Mensajes: 37
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: stored procedures y php problema

disculpa.... dedaso mio... si dice retorna... aun sigue sin funcionar...
te pongo el procedure :

DROP PROCEDURE `retorna`;
CREATEPROCEDURE retorna(IN `id` INT) NOT DETERMINISTIC NO SQL SQL SECURITY DEFINER
BEGIN SELECT * FROM prueba2;
END

ya no se que mover para q sirva esto
  #8 (permalink)  
Antiguo 12/11/2015, 00:07
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 2 meses
Puntos: 214
Respuesta: stored procedures y php problema

Cita:
Iniciado por atom182 Ver Mensaje
disculpa.... dedaso mio... si dice retorna... aun sigue sin funcionar...
te pongo el procedure :

DROP PROCEDURE `retorna`;
CREATEPROCEDURE retorna(IN `id` INT) NOT DETERMINISTIC NO SQL SQL SECURITY DEFINER
BEGIN SELECT * FROM prueba2;
END

ya no se que mover para q sirva esto
Saludo
¿Ese procedure se crea sin problema en tu bd?
A mí me da problemas, y no se deja crear.

Intenta sin el BEGIN ni el END
Por otra parte, el IN id INT de entrada no hace nada, entonces sobra también.


__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #9 (permalink)  
Antiguo 12/11/2015, 01:17
 
Fecha de Ingreso: julio-2012
Ubicación: en mi casa
Mensajes: 37
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: stored procedures y php problema

Cita:
Iniciado por mortiprogramador Ver Mensaje


Saludo
¿Ese procedure se crea sin problema en tu bd?
A mí me da problemas, y no se deja crear.

Intenta sin el BEGIN ni el END
Por otra parte, el IN id INT de entrada no hace nada, entonces sobra también.



ya lo tengo asi....

CREATE PROCEDURE retorna ()
BEGIN
SELECT * FROM prueba2;
END

me lo creo bien... pero me sale el mismo error

mi codigo de php

Código PHP:
<?php
    $link 
mysqli_connect('localhost''root''''pruebas');
                   
    echo 
"Conexión exitosa!";
    
   
    
    
$query 'CALL retorna()';
    
$result mysqli_query($link$query);
    
//$result = mysqli_multi_query($link, $query);
    

while($linea mysqli_fetch_array($result)){
            
               
$id $linea['id'] .','$linea['consulta'];
            
        }
   
    
?>
creo q php y mysql no me quieren
  #10 (permalink)  
Antiguo 12/11/2015, 01:39
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 2 meses
Puntos: 214
Respuesta: stored procedures y php problema

Saludo
A mí me sigue funcionando.

¿Y el echo a $id?
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #11 (permalink)  
Antiguo 12/11/2015, 05:09
 
Fecha de Ingreso: julio-2012
Ubicación: en mi casa
Mensajes: 37
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: stored procedures y php problema

Cita:
Iniciado por mortiprogramador Ver Mensaje
Saludo
A mí me sigue funcionando.

¿Y el echo a $id?
aun asi... noe me sale mas que el error.... no sera mi php? o el servidor? uso xampp y estoy usando netbeans para programar
  #12 (permalink)  
Antiguo 12/11/2015, 06:25
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: stored procedures y php problema

Cita:
Iniciado por atom182 Ver Mensaje
disculpa.... dedaso mio... si dice retorna... aun sigue sin funcionar...
te pongo el procedure :

DROP PROCEDURE `retorna`;
CREATEPROCEDURE retorna(IN `id` INT) NOT DETERMINISTIC NO SQL SQL SECURITY DEFINER
BEGIN SELECT * FROM prueba2;
END

ya no se que mover para q sirva esto
Bueno, es medio obvio que no te funcionará y devolverá error... El SP está esperando un parámetro de entrada y tu NUNCA se lo mandas:
Código PHP:
Ver original
  1. $query = 'CALL retorna()';
¿Tienes claro que MySQL no entiende ni interpreta PHP, y que ni siquiera existen en el mismo ámbito?
Para que el SP pueda ejecutarse, simplemente debes indicar la variable que acabas de cargar como parámetro, de modo que PHP se encargue de incrustar el valor correspondeinte:
Supongamos:
Código PHP:
Ver original
  1. $id = 123;
Si haces:
Código PHP:
Ver original
  1. $query = "CALL retorna($id)";
la query queda construida así:
Código MySQL:
Ver original
  1. CALL retorna(123)
que es lo que MySQL está esperando...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #13 (permalink)  
Antiguo 12/11/2015, 08:53
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 2 meses
Puntos: 214
Respuesta: stored procedures y php problema

Cita:
Iniciado por atom182 Ver Mensaje
aun asi... noe me sale mas que el error.... no sera mi php? o el servidor? uso xampp y estoy usando netbeans para programar
Saludo.
Pues yo he usado xampp también, sin problemas.
Neatbeans es el ide, no creo que por ahí sea el asunto.
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com

Etiquetas: mysql, procedures, select, sql, stored
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 07:33.