mysql error message on stored procedure -
i having trouble displaying error message here's wrote:
delimiter go create procedure getusers( in iemailaddress varchar(30), in ipassword varchar(30)) begin declare exit handler sqlexception -- 1 checking empty email address , suppose -- display error message. select emailaddress users not exists( select emailaddress users emailaddress=iemailaddress signal sqlstate value '99999' set message_text = 'email address not exists'; ) end begin declare exit handler sqlexception -- 1 checking empty password , suppose -- display error message. select password users not exists( select password users password=ipassword signal sqlstate value '99999' set message_text = 'password not exists'; ) end begin select emailaddress, password,salt,roleid,userid users emailaddress = iemailaddress , password = ipassword; end go delimiter ;
i got error message says:
mysql said: documentation 1064 - have error in sql syntax; check manual corresponds mysql server version right syntax use near 'signal sqlstate value '99999' set message_text = 'email address not ' @ line 10"
i've used link references: http://dev.mysql.com/doc/refman/5.7/en/signal.html
i solved problem , solution is:
> delimiter go create procedure getusers( in iemailaddress varchar(30), > in ipassword varchar(30)) begin declare checkemailcount int; declare > checkpasswordcount int; > > select count(emailaddress) checkemailcount users > emailaddress = iemailaddress; > > select count(password) checkpasswordcount users > password = ipassword; > > --check if emailaddress not exists > > if(checkemailcount!=1) signal sqlstate '45000' set message_text = > 'email address not found'; > > --check if password not exists > > elseif (checkpasswordcount!=1) signal sqlstate '45000' set > message_text = 'invalid password'; else > > select emailaddress,password,salt,userid users > emailaddress=iemailaddress , password = ipassword; > > > end if; end go delimiter ;
Comments
Post a Comment