Foros del Web » Programando para Internet » PHP »

PHP OO Procedimientos almacenados con php

Estas en el tema de Procedimientos almacenados con php en el foro de PHP en Foros del Web. Buenas Tengo un problema con el cual me estado quebrando la cabeza ya dias. Al momento de llamar un procedimiento almacenado desde php no me ...
  #1 (permalink)  
Antiguo 09/10/2012, 12:21
Avatar de jandrogdz  
Fecha de Ingreso: julio-2012
Ubicación: public $Guadalajara
Mensajes: 397
Antigüedad: 11 años, 8 meses
Puntos: 12
Pregunta Procedimientos almacenados con php

Buenas

Tengo un problema con el cual me estado quebrando la cabeza ya dias.
Al momento de llamar un procedimiento almacenado desde php no me devuelve la consulta me marca error de que no me devuelve valores.

Alguien me podria ayudar?. Este es mi codigo:

Aqui valido la sesion y es donde llamo el procedimiento.

Código PHP:
Ver original
  1. // Validación para obtener el acceso
  2.     $sql_validar_session = $conexion->query("CALL sp_validaUsuario ($correo,$pwd,@error)");
  3.  
  4.     if(!$sql_validar_session)
  5.     {
  6.         die('Consulta invalida, error: ' . mysql_error());
  7.     }
  8.     $rows_validar_session = $sql_validar_session->fetch_object();

y estos son los procedimientos nvolucrados...

Código MySQL:
Ver original
  1. CREATE PROCEDURE sp_usuarioActivo
  2. ( in idUsuario int)
  3.     UPDATE Usuario SET activo = 1 WHERE usuarioID = idUsuario;
  4.  
  5. CREATE PROCEDURE sp_validaUsuario
  6. (in txtCorreo text, in txtPwd text, out error int)
  7.     DECLARE idUsuario int;
  8.     IF EXISTS( SELECT * FROM Usuario WHERE correo = txtCorreo AND pass = txtPwd ) THEN
  9.         SET idUsuario = ( SELECT usuarioID  FROM Usuario WHERE correo = txtCorreo AND pass = txtPwd );
  10.         CALL sp_usuarioActivo (idUsuario);
  11.         /*SET error = 0; */
  12.     ELSE
  13.         SET error = 1;
  14.     END IF;

Al parecer el procedimiento funciona porque si actualiza pero no me devuelve ninguna consulta.
  #2 (permalink)  
Antiguo 09/10/2012, 12:56
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Procedimientos almacenados con php

poco sé del lenguaje que usa MySQL para los StoreProcedures, pero son las FUNCTION las que devuelven valor, o al menos el uso de la palabra RETURN, avalúe su función

http://dev.mysql.com/doc/refman/5.0/...procedure.html
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 09/10/2012, 13:00
Avatar de jandrogdz  
Fecha de Ingreso: julio-2012
Ubicación: public $Guadalajara
Mensajes: 397
Antigüedad: 11 años, 8 meses
Puntos: 12
Respuesta: Procedimientos almacenados con php

Gracias por responder.

Ya tengo otros procedimientos almacendados que son solo consultas y si me devuelven valores, mi situacion es que solo ese procedimiento es el que no me devuelve nada.
  #4 (permalink)  
Antiguo 09/10/2012, 13:27
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Procedimientos almacenados con php

bueno, sería recomendable que pruebes manualmente el procedimiento llamadolo desde un gestor de mysql como phpmyadmin, navicat, etc,. para descartar que es el procedimiento.

de ser así, reporta el tema para que lo muevan al subforo de MySQL en el foro de Bases de Datos, allí podrías encontrar solución de los que se codean más con MySQL, saludos
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #5 (permalink)  
Antiguo 09/10/2012, 13:54
Avatar de jandrogdz  
Fecha de Ingreso: julio-2012
Ubicación: public $Guadalajara
Mensajes: 397
Antigüedad: 11 años, 8 meses
Puntos: 12
Respuesta: Procedimientos almacenados con php

El procedimiento funciona correctamente ya lo corri en la consola de mysql y esta bien el problema es que en el php no me devuelve ningun valor de la consulta y aun no encuentro el porque...

Gracias man por responder
  #6 (permalink)  
Antiguo 09/10/2012, 14:01
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Procedimientos almacenados con php

realiza un var_dump($sql_validar_session); para ver que te sale
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #7 (permalink)  
Antiguo 09/10/2012, 14:06
Avatar de jandrogdz  
Fecha de Ingreso: julio-2012
Ubicación: public $Guadalajara
Mensajes: 397
Antigüedad: 11 años, 8 meses
Puntos: 12
Respuesta: Procedimientos almacenados con php

Ok man he hecho lo que me has respondido y me arroja esto:
boolean true.

Nunca me habia salido eso. Al momento que hago la validacion en el formulario me arroja este error
Call to a member function fetch_object() on a non-object in

pero si hace la modificacion en la base de datos
  #8 (permalink)  
Antiguo 09/10/2012, 14:18
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Procedimientos almacenados con php

eso es porque te está devolviendo un boleano, ¿que esperabas que te devolviera, o mejor dicho que se supone que debe devolver?
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #9 (permalink)  
Antiguo 09/10/2012, 14:25
Avatar de jandrogdz  
Fecha de Ingreso: julio-2012
Ubicación: public $Guadalajara
Mensajes: 397
Antigüedad: 11 años, 8 meses
Puntos: 12
Respuesta: Procedimientos almacenados con php

Ok eso no lo sabia apenas comienzo en esto de mysql y php lo qu epasa es que tngo otros procedimientos que me devuelve la consulta pero este procedimiento como hace otras acciones como le haria para que me devolviera una consulta?

Etiquetas: mysql, procedimientos, sql, almacenar, usuarios
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 10:07.