2015-03-19 91 views
2
CREATE DEFINER=`root`@`localhost` PROCEDURE `Mobile_ForgotPassword`(IN`v_email` VARCHAR(30), IN `v_valid` INT) 
NO SQL 
IF (v_valid = 0) THEN 
    SELECT email FROM user_registration WHERE email = v_email; 
ELSE 
    SELECT password FROM user_registration WHERE email = v_email; 
END IF; 

我有這個MySQL存儲過程,它不工作。每當我嘗試在phpmyadmin上執行這個腳本時,在第4行發現我有語法錯誤的錯誤。由於我使用的是phpmyadmin,分隔符已經動態添加,並且我有權限訪問root帳戶。我試圖刪除DEFINER,但仍然無法正常工作。據我所知,我沒有看到腳本中的任何語法錯誤或我沒有得到它。任何人 ?MySQL存儲過程,如果...其他未執行

回答

1
CREATE DEFINER=`root`@`localhost` PROCEDURE `Mobile_ForgotPassword`(IN `v_email` VARCHAR(30), IN `v_valid` INT) 
NO SQL 
IF (v_valid = 0) THEN 
    SELECT email FROM user_registration WHERE email = v_email LIMIT 1; 
ELSE 
SELECT password FROM user_registration WHERE email = v_email LIMIT 1; 
END IF; 
  1. 刪除默認的分隔符下的腳本編輯器在phpMyAdmin
0

你需要從文本框添加DELIMITER

DELIMITER | 
    CREATE PROCEDURE `Mobile_ForgotPassword`(IN`v_email` VARCHAR(30), IN `v_valid` INT) 
    NO SQL 
    IF (v_valid = 0) THEN 
     SELECT email FROM user_registration WHERE email = v_email; 
    ELSE 
     SELECT PASSWORD FROM user_registration WHERE email = v_email; 
    END IF; 
    | 
    DELIMITER ; 
+0

都能跟得上。試過了,失敗了。正如我已經提到的,我使用phpmyadmin來運行此過程,並且phpmyadmin自己添加了分隔符 – Mahadev 2015-03-19 05:34:26

+0

它在我的phpmyadmin以及sqlyog中工作正常。你只需複製並粘貼你的sql編輯器並運行查詢。 – 2015-03-19 05:39:57

+0

好的,讓我再試一次。 – Mahadev 2015-03-19 05:44:40