Невозможно создать простую хранимую функцию в mysql
Привет,
Я пытаюсь создать простую функцию в MySql, которая может принимать два параметра и возвращать один параметр следующим образом:
DELIMITER $$ DROP FUNCTION IF EXISTS `itsnowdb`.`validateLogin`$$; CREATE FUNCTION `itsnowdb`.`validateLogin(user_name varchar, pswd varchar)` RETURNS INT; BEGIN DECLARE result INT DEFAULT 0; DECLARE uname VARCHAR DEFAULT ""; SELECT userName INTO uname FROM user_master WHERE userName=user_name AND PASSWORD=pswd; IF (uname) THEN SET result=1; END IF; END $$ RETURN result; DELIMITER;
Но я получаю ошибку, как показано ниже:
3 queries executed, 1 success, 2 errors, 1 warnings Query: DROP FUNCTION IF EXISTS `itsnowdb`.`validateLogin` 0 row(s) affected, 1 warning(s) Execution Time : 0 sec Transfer Time : 1.021 sec Total Time : 1.021 sec Note Code : 1305 FUNCTION itsnowdb.validateLogin does not exist -------------------------------------------------- Query: ; CREATE FUNCTION `itsnowdb`.`validateLogin( user_name varchar, pswd varchar)` RETURNS int; BEGIN DECLARE result int DEFAULT 0; ... Error Code: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '; CREATE FUNCTION `itsnowdb`.`validateLogin( user_name varchar, pswd varchar)` R' at line 1 Execution Time : 0 sec Transfer Time : 0 sec Total Time : 0 sec -------------------------------------------------- <pre> Query: return result; DELIMITER; Error Code: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'return result; DELIMITER' at line 1 Execution Time : 0 sec Transfer Time : 0 sec Total Time : 0 sec
Кто-нибудь, пожалуйста, дайте мне знать, где я ошибаюсь?
Что я уже пробовал:
Я пытался изменить код несколько раз.
Richard Deeming
Вы храните пароли небезопасно. Тебе нужно это исправить.
Безопасная Аутентификация Паролем Объясняется Просто[^]
Соленое хэширование паролей - делаем это правильно[^]