2015-03-31 40 views
0

执行程序,我有以下SQL代码:在phpMyAdmin

EXECUTE userAanmaken 
@domeinNummer=1, 
@gebruikerNaam='Jansen', 
@gebruikerPass='Jaap', 
@gebruikerEmail='[email protected]', 
@gebruikerVN='Joop', 
@gebruikerTV='van', 
@gebruikerAN='Heha', 
@gebruikerGS='M', 
@gebruikerOL='Hoog', 
@gebruikerGD=2011-11-11 

该代码会影响以下过程:

CREATE PROCEDURE userAanmaken 
( 
IN domeinNummer INT(11), 
IN gebruikerNaam VARCHAR(45), 
IN gebruikerPass VARCHAR(45), 
IN gebruikerEmail VARCHAR(45), 
IN gebruikerVN VARCHAR(50), 
IN gebruikerTV VARCHAR(10), 
IN gebruikerAN VARCHAR(50), 
IN gebruikerGS VARCHAR(1), 
IN gebruikerOL VARCHAR(30), 
IN gebruikerGD DATE 
) 

BEGIN 

DECLARE lastID INT; 

INSERT INTO Gebruiker(Domein_idDomeint) 
VALUES (domeinNummer); 

SET lastId=LAST_INSERT_ID(); 

INSERT INTO Inlog (Gebruiker_idGebruiker,UserName,UserPass) 
VALUES (lastId,gebruikerNaam,gebruikerPass); 

INSERT INTO GGevens (Gebruiker_idGebruiker,Email,Voornaam,Tussenvoeg,Achternaam,Geslacht,Opleiding,GebDatum) 
VALUES (lastId,gebruikerEmail,gebruikerVN,gebruikerTV,gebruikerAN,gebruikerGS,gebruikerOL,gebruikerGD); 
END$$ 

当我运行它有一个语法错误返回执行语句。

如何在SQL执行语句中定义参数?

+0

你可以复制>粘贴你得到什么语法错误? – 2015-03-31 11:51:22

+0

MySQL使用'CALL'而不是'EXECUTE' - 我不知道'EXECUTE'被支持作为'CALL'的别名。 http://dev.mysql.com/doc/refman/5.0/en/call.html'EXECUTE'用于执行预处理语句,这与存储过程不同。 – 2015-03-31 11:57:30

+0

@StanislovasKalašnikovas错误:http://i.imgur.com/ZvsUxWJ.png – Sjoelbakje 2015-03-31 12:31:48

回答

0

看来你失踪日期引号''DATE

@gebruikerGD='2011-11-11'

也许你需要在程序结束时使用DELIMITER //在议事beggining和DELIMITER;。检查documentation

+0

错误指向第2行:/ – Sjoelbakje 2015-03-31 11:58:02

+0

如果使用* MySQL *尝试使用'CALL'而不是'EXECUTE' – 2015-03-31 12:00:37

+0

CALL返回同样的错误:http://i.imgur.com/DmvIFf8.png – Sjoelbakje 2015-03-31 12:34:48