سؤال

I try to write a stored procedure that finds the user in table and returns him. But the procedure always returns entire table.

DELIMITER //
DROP PROCEDURE IF EXISTS `login`
CREATE PROCEDURE `login`(IN login VARCHAR(20), IN password VARCHAR(32))
BEGIN
SELECT * FROM `users` WHERE `login` = login AND `password` = password;
END
//
DELIMITER ;

What's wrong?

هل كانت مفيدة؟

المحلول

Try change the names of parameters

DROP PROCEDURE IF EXISTS `login`;
CREATE PROCEDURE `login`(IN alogin VARCHAR(20), IN apassword VARCHAR(32))
SELECT * FROM `users` WHERE `login` = alogin AND `password` = apassword;

Ans since it's a one-statement SP dith BEGIN...END block and no need to change a DELIMITER.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top