Процедура хранения SQL OUT всегда возвращает NULL - PullRequest
0 голосов
/ 24 сентября 2019

Я пытаюсь создать логин в sql и использую хранимые процедуры для сбора информации о логине.Даже при выполнении хранимой процедуры в phpmyadmin мой параметр out всегда возвращает значение Null, и я не могу понять, почему.

userid - это мой параметр OUT, я получаю обратно адрес электронной почты и пароль, а остальные поля - пустые строки.

BEGIN
set @userid = (select id from `user` where `email` = email and `password` = password and statusId = 8);

if @userid is not null
then
    set @statu = 9;
elseif @userid is null
then
    set @statu = 10;
end if;

call loginHistory(@userid, email, @statu, ip4, ip6, deviceType, appVer);

set @userid = userid;
END

Спасибо

1 Ответ

0 голосов
/ 24 сентября 2019

У вас проблема с вашими параметрами.Назовите их с префиксом, например in.

Так что я думаю, что вы хотите:

BEGIN
   select @user_id := u.id
   from `user`u
    where u.email = in_email and
          u.password = in_password and
          u.statusId = 8;

    set @statu = (case when @userid is not null then 9 else 10 end);

    call loginHistory(@userid, in_email, @statu, in_ip4, in_ip6, in_deviceType, in_appVer);

    set @userid = in_userid;
END;

Я не уверен, что это решит вашу проблему, но хотя бы кодбудет делать что-то более разумное.

...