MySQL用户注册存储过程似乎不起作用

时间:2018-11-02 04:43:31

标签: mysql debugging stored-procedures user-registration

CREATE DEFINER=`root`@`localhost` PROCEDURE `user_register`(Fullname VARCHAR(50), Email VARCHAR(150), Pass VARCHAR(50))
BEGIN

DECLARE s VARCHAR(20);
DECLARE returned_id varchar(100);

SET returned_id = (SELECT email FROM users WHERE email = Email);

IF (returned_id IS  NULL) THEN
    INSERT INTO users (`name`, `email`, `password`, `create_time`) 
        VALUES (Fullname, Email, Pass, CURRENT_TIMESTAMP());

SET s = 'success';

call log_msg(s); #for testing


ELSE
        SET s = 'exists';
        call log_msg(s); #for testing

END IF;

END

执行此存储过程时,如果表为空,则似乎将用户添加到用户表中。然后,无论我输入什么变量,用户表总是说用户存在于用户表中。

例如)我在一个空的用户表上用('ss','ss','ss')调用该过程,它将成功地用ss,ss和ss更新表中的参数。

然后,如果我在ss,ss,ss已经是用户的用户表上用('123','123','123')调用该过程。该过程认为表中已经有123,123,123,因此不会对其进行更新。

请帮助,我需要一个用于用户注册的存储过程,它似乎不起作用,并且我找不到找到它的方法。我相信我的代码在逻辑上可以正常工作,我不明白为什么它不更新它。

0 个答案:

没有答案