¿Cómo obtener el resultado escalar de la declaración preparada?
¿Es posible establecer el resultado de una declaración preparada en una variable? Estoy tratando de crear el siguiente procedimiento almacenado pero falla:
ERROR 1064 (42000) en la línea 31: tiene un error en su sintaxis SQL; consulte el manual que corresponde a la versión de su servidor MySQL para obtener la sintaxis correcta para usar cerca de 'stmt UTILIZANDO @m, @c, @a;
DROP PROCEDURE IF EXISTS deleteAction;
DELIMITER $
CREATE PROCEDURE deleteAction(
IN modul CHAR(64),
IN controller CHAR(64),
IN actn CHAR(64))
MODIFIES SQL DATA
BEGIN
PREPARE stmt FROM 'SELECT id
FROM actions
WHERE `module` = ?
AND `controller` = ?
AND `action` = ?';
SET @m = modul;
SET @c = controller;
SET @a = actn;
SET @i = EXECUTE stmt USING @m, @c, @a;
DEALLOCATE PREPARE stmt;
DELETE FROM acl WHERE action_id = @i;
DELETE FROM actions WHERE id = @i;
END
$
DELIMITER ;