Foros del Web » Programando para Internet » PHP »

Problema con store procedure mysql

Estas en el tema de Problema con store procedure mysql en el foro de PHP en Foros del Web. Hola!!!! buenas noches. tengo un problema con un store procedure en mysql al llamarlo desde una pagina php. stoy haciendo un sistema que me lleva ...
  #1 (permalink)  
Antiguo 13/07/2011, 20:58
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 389
Antigüedad: 13 años
Puntos: 16
Pregunta Problema con store procedure mysql

Hola!!!! buenas noches. tengo un problema con un store procedure en mysql al llamarlo desde una pagina php. stoy haciendo un sistema que me lleva unos registros, y con el SP, le cambio el estatus de activo a inactivo en varias tablas.
Este es el error que me muestra en la pantalla
Código MySQL:
Ver original
  1. Commands out of sync; you can't run this command now

Lo que me extraña es que igualmente me ejecuta el store procedure, y se realizan los cambios en las tablas de la bd. pero en la pantalla del sistema deberia volver a la vista del listado y lo que hace es mostrarme este error. Es primera vez que lo veo. y si lo ejecuto desde la consola de mysql corre sin problemas. entoncs no se si sea algo d php. Si alguien tiene alguna idea. Muchas gracias.
  #2 (permalink)  
Antiguo 14/07/2011, 00:16
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 6 meses
Puntos: 331
Respuesta: Problema con store procedure mysql

Ahí te dejo la pista a seguir: http://dev.mysql.com/doc/refman/5.0/...t-of-sync.html
parece que es bastante común.
Salu2
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 14/07/2011, 08:20
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 389
Antigüedad: 13 años
Puntos: 16
Respuesta: Problema con store procedure mysql

ok. alli dice que es un error normal. de cuando llamo a la funcion en un orden inadecuado,. :S pero no es el unico sp que uso en el system. y es el unico q me da error. aqui pongo el codigo donde lo llamo.
Código PHP:
Ver original
  1. $conn = conexion();
  2.  
  3. include('base.html');
  4.  
  5.       $sql = "call registroPago($convenio);";
  6.  
  7.       $ejec = ejecutarQuery($conn,$sql);
conexion() es una funcion que tengo definida que hace la conexion y todo el asunto. y ejecutarQuery es otra que los ejecuta (es la misma que uso en todo el sistema, para consultas simples y para los SP). y este es el unico sp que me da error. :s $convenio es un parametro INT. que equivale al id en la bd. y es el unico parametro que recibe el sp. Si lo corro en la consola mysql funciona. de verdad yo no veo el error. :S Gracias.
  #4 (permalink)  
Antiguo 14/07/2011, 08:44
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Problema con store procedure mysql

Puedes poner tu función ejecutarQuery()?, cuando te sale ese error, es porque no haz liberado la consulta, pero todo depende de que librería estes usando para conectarte a MySQL.

Saludos.
  #5 (permalink)  
Antiguo 14/07/2011, 09:00
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 389
Antigüedad: 13 años
Puntos: 16
Respuesta: Problema con store procedure mysql

ok. a ver esta es mi funcion ejecutrarQuery:
Código PHP:
Ver original
  1. }
  2.  
  3.  
  4.  
  5. function ejecutarQuery($conn, $query){
  6.  
  7.     $result = mysql_query($query, $conn);
  8.  
  9.     if (!$result){
  10.  
  11.         die("No se Pudo Ejecutar la Sentencia".mysql_error());
  12.  
  13.     }
  14.  
  15.     return $result;
  16.  
  17. }
  18. como liberar la consultA? podrias explicarme. :S
  #6 (permalink)  
Antiguo 14/07/2011, 09:02
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 389
Antigüedad: 13 años
Puntos: 16
Respuesta: Problema con store procedure mysql

ok... no me di cuenta que seguia escribiendo en el codigo jajaja. Como haria para liberar la consulta??? no entendi. puedes explicarme???
  #7 (permalink)  
Antiguo 14/07/2011, 10:01
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Problema con store procedure mysql

Usa mysql_free_result() para eso.

Saludos.
  #8 (permalink)  
Antiguo 14/07/2011, 11:50
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 389
Antigüedad: 13 años
Puntos: 16
Respuesta: Problema con store procedure mysql

ok. perdonen la insistencia. No conocia mysql_Free_result. por lo que vi. se utiliza pasandole la variable donde se guarda el resultado de la consulta. cierto? asi?
Código PHP:
Ver original
  1. $sql = "call registroPago($convenio);";
  2.  
  3. $ejec = ejecutarQuery($conn,$sql);
  4.  
  5. $result = mysql_fetch_array($ejec);
  6.  
pero me sigue dando el mismo error.
  #9 (permalink)  
Antiguo 14/07/2011, 15:02
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Problema con store procedure mysql

Es del resultado del recurso, o sea $ejec.

Saludos.
  #10 (permalink)  
Antiguo 18/07/2011, 11:03
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 389
Antigüedad: 13 años
Puntos: 16
Respuesta: Problema con store procedure mysql

ok. el problema seguia igual. me di cuenta que es porq en este SP. yo intente retornar unos valos con un select y son los que agarraba con el fetch_array. Y por eso me da el error. al quitarle el select de consulta corre sin problemas. ahora la duda es porq no puedo hacer un sp que me retorne valores????.
  #11 (permalink)  
Antiguo 18/07/2011, 11:22
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Problema con store procedure mysql

El problema es que la extensión de MySQL normal no tiene ese soporte, necesitas usar mysqli para ello, ya que es la extensión Improved, y tiene el soporte para SPs.

Otra forma es usar PDO.

Saludos.
  #12 (permalink)  
Antiguo 18/07/2011, 12:59
 
Fecha de Ingreso: marzo-2011
Ubicación: Caracas
Mensajes: 389
Antigüedad: 13 años
Puntos: 16
Respuesta: Problema con store procedure mysql

mmmm. vale muchas gracias! ya buscare sobre ello. por ahora solucione haciendo elquery de consulta por separado. Gracias.
  #13 (permalink)  
Antiguo 26/09/2011, 16:58
 
Fecha de Ingreso: agosto-2009
Mensajes: 2
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Problema con store procedure mysql

no sé si ya habrás resuelto el problema de los procedimientos almacenados de select utilizando mysql_query, yo tenía el mismo problema...

estuve investigando hasta que encontré la solución...

Para corregirlo cambia la cadena de conexión, adicionando ", false,131072", ó ", false,65536" en los últimos 2 campos en:

ejemplo:

$conexion = mysql_connect($server, $user, $pass, false, 131072) or die("Error al conectar con el servidor");

cala con ambas, porque intenté con el número 65536 y no me funcionó, pero con el 131072 sí.

Otro detalle es que haciendo esto, leí que no se pueden enviar variables de salida... pero está muy funcional...

Etiquetas: mysql, procedure, registro, store, tabla
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 01:28.