Wie erhalte ich ein skalares Ergebnis aus einer vorbereiteten Anweisung?

Ist es möglich, das Ergebnis einer vorbereiteten Anweisung in eine Variable zu setzen? Ich versuche, die folgende gespeicherte Prozedur zu erstellen, aber sie schlägt fehl:

FEHLER 1064 (42000) in Zeile 31: Ihre SQL-Syntax ist fehlerhaft. Überprüfen Sie das Handbuch, das Ihrer MySQL-Serverversion entspricht, auf die richtige Syntax für die Verwendung in der Nähe von 'stmt USING @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 ;

Antworten auf die Frage(6)

Ihre Antwort auf die Frage