Hola a todos, he estado tratando de hacer uso de MySQL a través de PHP utilizando procedimientos almacenados o Stored Procedures.
En un par de ocasiones funciona correctamente y en otras no, no entiendo el porque. Estoy utilizando XAMPP, con la funcionalidad de PHP y MySQL incluida.
Este es el código que funciona correctamente
Código PHP:
$sql = "CALL Inserta($var1, $var2, $var3)";
$result = mysql_query($sql, $link);
Y el procedimiento Inserta es:
Código:
DELIMITER //
DROP PROCEDURE IF EXISTS `Inserta`//
CREATE PROCEDURE `Inserta`(
IN var1 INT(5),
IN var2 VARCHAR(50),
IN var3 YEAR(4),
)
BEGIN
INSERT INTO `base_de_datos`.`table`(`col1`, `col2`, `col3`) VALUES (var1, var2, var3);
END
//
DELIMITER ;
Sin embargo, el siguiente procedimiento almacenado no me funciona:
Código PHP:
$sql = "CALL Actualiza($var1, $var2, $var3, $id)";
$result = mysql_query($sql, $link);
Con el siguiente procedimiento almacenado:
Código:
DELIMITER //
DROP PROCEDURE IF EXISTS `Actualiza`//
CREATE PROCEDURE `Actualiza`(
IN var1 INT(5),
IN var2 VARCHAR(50),
IN var3 YEAR(4),
IN id INT(5)
)
BEGIN
UPDATE `base_de_datos`.`tabla` SET `tabla`.`col1` = 'var1', `tabla`.`col2` = 'var2', `tabla`.`col3` = 'var3' WHERE `tabla`.`id_tabla` = 'id';
END
//
DELIMITER ;
La cosa es que dice que se ejecuta con éxito, sin embargo, no modifica en nada la tabla...
Espero me puedan ayudar.
Gracias de antemano por su atención :D!