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 уже находится в таблице и не будет обновлять ее.
Пожалуйста, помогите, мне нужна хранимая процедура для регистрации пользователя, и она, кажется, не работает, и я не могу найти способ, чтобы она работала. Я считаю, что мой код работает логически, я не понимаю, почему он не обновляет его.