sql存储过程mysql在执行时返回null

izj3ouym  于 2021-06-20  发布在  Mysql
关注(0)|答案(0)|浏览(152)

我试图执行这个pl/mysql来得到3个值作为回报,但是

DELIMITER //
CREATE PROCEDURE p_login(user VARCHAR(16), 
pass VARCHAR(30),
OUT Tipo_usuarios VARCHAR(1), 
OUT estado_usuarios VARCHAR(1),
OUT idUsuarios INT(11)) 
BEGIN
    DECLARE s_tipo,  s_estado VARCHAR(1);
    DECLARE s_id INT(11);
    SELECT Tipo_usuarios, estado_usuarios, idUsuarios 
    INTO s_tipo, s_estado, s_id
    FROM USUARIOS
    WHERE 
        user_usuarios = user AND
        pass_usuarios = pass;
    IF s_id IS NOT NULL THEN
        SET Tipo_usuarios = s_tipo;
        SET estado_usuarios = s_estado;
        SET idUsuarios = s_id;
        INSERT INTO BITACORA_LOGIN (usuario_bitacora, 
        fecha_bitacora) 
        VALUES (s_id, SYSDATE(), USER());
        COMMIT;
    END IF;
END//
DELIMITER ;

当我执行

CALL p_login('user1', 597293, @a, @b, @c);
SELECT @a, @b, @c;

我总是得到空值,你知道如何执行,或者我的pl/mysql有什么不好的地方吗?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题