Хранимая процедура регистрации пользователя MySQL, похоже, не работает - PullRequest
0 голосов
/ 02 ноября 2018
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.

Тогда, если я вызову процедуру с ('123', '123', '123') для пользовательской таблицы, где ss, ss, ss уже является пользователем. Процедура считает, что 123 125 123 уже находится в таблице и не будет обновлять ее.

Пожалуйста, помогите, мне нужна хранимая процедура для регистрации пользователя, и она, кажется, не работает, и я не могу найти способ, чтобы она работала. Я считаю, что мой код работает логически, я не понимаю, почему он не обновляет его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...