Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

PHP no llama Stored Procedure

Estas en el tema de PHP no llama Stored Procedure en el foro de Mysql en Foros del Web. Hola a todos tengo un problema bastante molesto con php y mysql y no es la primera vez que me sucede. Resulta que tengo un ...
  #1 (permalink)  
Antiguo 26/10/2012, 09:29
Avatar de djaevi  
Fecha de Ingreso: marzo-2007
Ubicación: Moreno, Buenos Aires
Mensajes: 400
Antigüedad: 17 años, 1 mes
Puntos: 47
PHP no llama Stored Procedure

Hola a todos tengo un problema bastante molesto con php y mysql y no es la primera vez que me sucede.

Resulta que tengo un stored procedure que realiza unos insert en una tabla mediante un bucle en base a una cadena que le paso. El asunto es que cuando ejecuto el stored procedure desde mysql workbench o otra herramienta propia mysql funciona a las mil maravillas pero cuando lo llamo desde php no realiza absolutamente nada.

Lo curioso es que tengo otros sp en mi base que si funcionan, he comentado practicamente todo el sp y al hacer una consulta sencilla como un select ahi si funciona pero en ocasiones si y en ocasiones no en fin muy extraño. Les dejo el codigo de mi sp pero como dije si lo corro bajo mysql funciona excelente.

Codigo SP:

Código SQL:
Ver original
  1. DELIMITER $$
  2.  
  3. CREATE DEFINER=`root`@`localhost` PROCEDURE `enviarMensaje`(
  4.     p_idUsuario INT,
  5.     p_asunto TEXT,
  6.     p_mensaje TEXT,
  7.     p_idsReceptores VARCHAR (300)
  8. )
  9. BEGIN
  10.  
  11. DECLARE sp_ids INT;
  12. DECLARE EXIT HANDLER FOR SQLSTATE '23000' ROLLBACK TO inicio;
  13. DECLARE EXIT HANDLER FOR SQLEXCEPTION ROLLBACK TO inicio;
  14. DECLARE EXIT HANDLER FOR SQLWARNING ROLLBACK TO inicio;
  15. DECLARE EXIT HANDLER FOR 1062 ROLLBACK TO inicio;
  16.  
  17. START TRANSACTION;
  18.  
  19. SELECT 0;
  20.  
  21. SAVEPOINT inicio;
  22.  
  23.     WHILE instr(p_idsReceptores,'-') != 0 DO
  24.    
  25.         SET sp_ids = SUBSTRING(p_idsReceptores,1,instr(p_idsReceptores,'-')-1);
  26.         SET p_idsReceptores = SUBSTRING(p_idsReceptores,instr(p_idsReceptores,'-')+1,CHAR_LENGTH(p_idsReceptores));
  27.  
  28.         INSERT INTO temp (texto,num)VALUES ("texto",sp_ids);
  29.  
  30.     END WHILE;
  31.    
  32.     SET sp_ids = p_idsReceptores;
  33.    
  34.     INSERT INTO temp (texto,num) VALUES ("texto",sp_ids);
  35.    
  36. COMMIT;
  37.  
  38. SELECT 1;
  39.  
  40. END

Y aqui como lo llamo desde PHP.

Código PHP:
Ver original
  1. $llamada = mysql_query("CALL enviarMensaje(54,'asunto','mensaje','1-2-3-4')");
  2. echo mysql_result($llamada,0,0);

Vale decir que llamo a mis otros sp de la misma manera y ninguno tiene mayores problemas lo unico que tiene este de distinto es que empece a utilizar las excepciones SQL para manejar errores.

Salu2 y gracias de antemano!
  #2 (permalink)  
Antiguo 26/10/2012, 11:28
Avatar de djaevi  
Fecha de Ingreso: marzo-2007
Ubicación: Moreno, Buenos Aires
Mensajes: 400
Antigüedad: 17 años, 1 mes
Puntos: 47
Respuesta: PHP no llama Stored Procedure

Bueno he seguido intentando con esto y me ha sucedido algo increible, cuando intento hacer los inserts en la tabla mediante php, dichos cambios aparecen en la tabla cuando la consulto desde phpmyadmin pero no aparecen en la tabla cuando los consulto desde workbench o desde la pagina donde llamo esos datos, es el colmo de la locura ya no se que hacer estoy usando el wampserver y trabajando en modo local, me estoy dando muchos dolores de cabeza les dejo un ejemplo:

CALL enviarMensaje(54,'asunto','mensaje','1-2-3-4');

para phpmyadmin:

------------------
l id l texto l num l
------------------
l 1 l 'texto' l 1 l
------------------
l 2 l 'texto' l 2 l
------------------
l 3 l 'texto' l 3 l
------------------
l 4 l 'texto' l 4 l
------------------

para mysql workbench y sitio

para phpmyadmin:

-------------------
l id l texto l num l
------------------
l null l null l null l
-------------------

Alguna idea de que puede estar sucediendo?
  #3 (permalink)  
Antiguo 26/10/2012, 11:29
Avatar de djaevi  
Fecha de Ingreso: marzo-2007
Ubicación: Moreno, Buenos Aires
Mensajes: 400
Antigüedad: 17 años, 1 mes
Puntos: 47
Respuesta: PHP no llama Stored Procedure

Bueno he seguido intentando con esto y me ha sucedido algo increible, cuando intento hacer los inserts en la tabla mediante php, dichos cambios aparecen en la tabla cuando la consulto desde phpmyadmin pero no aparecen en la tabla cuando los consulto desde workbench o desde la pagina donde llamo esos datos, es el colmo de la locura ya no se que hacer estoy usando el wampserver y trabajando en modo local, me estoy dando muchos dolores de cabeza les dejo un ejemplo:

CALL enviarMensaje(54,'asunto','mensaje','1-2-3-4');

para phpmyadmin:

-----------------------------
l id l texto l num l
-----------------------------
l 1 l 'texto' l 1 l
-----------------------------
l 2 l 'texto' l 2 l
-----------------------------
l 3 l 'texto' l 3 l
-----------------------------
l 4 l 'texto' l 4 l
-----------------------------

para mysql workbench y sitio:

l id l texto l num l
-----------------------------
l NULLl NULL l NULLl
-----------------------------

Alguna idea de que puede estar sucediendo?

Última edición por djaevi; 26/10/2012 a las 11:35

Etiquetas: llama, php, procedure, select, sql, stored, 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




La zona horaria es GMT -6. Ahora son las 18:33.