2013-06-28 34 views
0

IAM試圖通過1.本從數據庫值存儲到內部程序變量並增加它的價值是我做的:如何讓存儲過程從變量表和存儲特定值

CREATE DEFINER=`satish`@`%` PROCEDURE `p_authTeacher`(
IN username VARCHAR(35), 
IN pwd VARCHAR(35), 
OUT msg INT, 
OUT msg1 INT, 
OUT msg2 INT 
) 
BEGIN 
select (COUNT(*) > 0) INTO @result from login where User_Name = username and User_Password = md5(pwd); 

SET msg = @result; 
IF @result = 1 THEN 
select (COUNT(*)>0) into @result1 from login where User_Name = username and User_Password = md5(pwd) and Is_New ='F'; 
if @result1= 1 Then 
UPDATE login SET Last_login=now() where User_Name = username and User_Password = md5(pwd); 
SET msg1 = @result1; 
END IF; 
if @result1= 0 Then 
UPDATE login SET Last_login=now() where User_Name = username and User_Password = md5(pwd); 
SET msg1 = @result1;  
END IF; 
END IF; 
IF @result = 0 THEN 
    select Password_Attempts into @attempts from login where User_Name = username ; 
    SET msg2 = @attempts; 
update login set Password_Attempts=1 where username = uname; 
END IF; 
END 

試圖存儲列的值(Password_Attempts),其中username = uname的登錄表。 加入1並​​更新到數據庫。但當然,我得到了語法錯誤。請幫助我。即使用戶名和密碼不匹配,最後一個if塊也不能工作。

+0

您在哪一行出現語法錯誤?爲什麼不在最後一行使用'update login set Password_Attempts = Password_Attempts + 1 where username = uname;'? –

+0

它給我錯誤第1行在哪裏(錯誤:意外的地方)。 – Subodh

回答

1

請參閱this鏈接以獲得正確的語法SELECT ... INTO。您應該在FROM之前放INTO

select Password_Attempts into @attempts from login where User_Name = uname ; 
+0

謝謝大衛它刪除錯誤,雖然我不會得到我想要的。即時編輯我的程序與它的更全面的版本,請看看它。 – Subodh

+0

您還應該更改問題,指定與樣本數據相關的內容。 –