2013-05-28 7 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 $$ и добавить пробел между END и IF

END IF; 
    END $$ 
+0

Bingo !! Я не могу поверить, что я пропустил это, я думал, что пробовал каждую вариацию этих двух последних строк. благодаря – 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

Смежные вопросы