0
が存在する:トラブルと私は、このSQLクエリを持って
CREATE DEFINER=`root`@`localhost` FUNCTION `user_login_fn`(username varchar(32),pass varchar(128),actual_user int) RETURNS tinyint(1)
BEGIN
declare compareResult boolean;
declare user_id int;
if (select EXISTS(SELECT * FROM `user` WHERE `username`= username and `password` = sha2(pass, 512) and `status`='A')) THEN
SELECT id_user into user_id FROM `user` WHERE `username`= username and `password` = sha2(pass, 512) and `status`='A';
SET compareResult = register_insert_fn(actual_user, 5, Concat("Login user with ID: ", user_id));
return true;
else
SELECT id_user into user_id FROM `user` WHERE `username`= username;
SET compareResult = register_insert_fn(actual_user, 5, Concat("Failed login user with ID: ", user_id));
return false;
END IF;
END
問題は常に私がnullパラメータを渡す場合でも、TRUEを返します。 私はこのような選択stamentテスト:
select EXISTS(SELECT * FROM `user` WHERE `username`= 'prueba' and `password` = sha2('123', 512) and `status`='A')
と正常に動作しますが、機能に常にtrueを返すか1