2013-05-28 109 views
0

我試着爲我的購物車創建以下準備好的語句,但它無法正確執行。它報告以下錯誤,我不知道如何解決它:SQL IF ELSE語句不執行

#1064 - 您的SQL語法有錯誤;檢查與您的MySQL服務器版本對應的手冊,以找到在';'附近使用的正確語法。 END $$'在第25行

據我所知IF語句語法是正確的,但它只是不會工作。

DELIMITER $$ 
CREATE PROCEDURE shopping_cart_add_product(IN inCartId CHAR(32), 
IN inProductId INT, IN inAttributes VARCHAR(1000)) 
BEGIN 
DECLARE productQuantity INT; 

SELECT quantity 
FROM shopping_cart 
WHERE cart_id = inCartId 
AND product_id = inProductId 
AND attributes = inAttributes 
INTO productQuantity; 

IF productQuantity IS NULL THEN 
INSERT INTO shopping_cart(cart_id, product_id, attributes, 
productQuantityuantity, added_on) 
VALUES (inCartId, inProductId, inAttributes, 1, NOW()); 

ELSE 
UPDATE shopping_cart 
SET quantity = quantity + 1, buy_now = true 
WHERE cart_id = inCartId 
AND product_id = inProductId 
AND attributes = inAttributes; 
ENDIF; 
END $$ 

回答

1

結束後,取下$$和快速回復添加END和IF

END IF; 
    END $$ 
+0

賓果遊戲!我不能相信我錯過了那些,我以爲我試過了最後兩行的每一個變化。謝謝 – useyourillusiontoo

0

它應該是結束如果不是從底部的第二行ENDIF。

http://dev.mysql.com/doc/refman/5.5/en/if.html

... 
ELSE 
UPDATE shopping_cart 
SET quantity = quantity + 1, buy_now = true 
WHERE cart_id = inCartId 
AND product_id = inProductId 
AND attributes = inAttributes; 
END IF; 
END $$ 
+0

嗨空間,謝謝。我已經和現在在下一行發生錯誤。 #1064 - 你的SQL語法錯誤;檢查對應於您的MySQL服務器版本的手冊,以獲得在第2行附近'$$'使用的正確語法 – useyourillusiontoo