2013-03-01 2 views
1

이 저장 프로 시저가 작동하도록 만들려고합니다. 나는 매개 변수를 받고 'participantes'테이블에 행이 있는지 살펴보고 ID가 테이블에 있는지 확인하는 결과를 계산합니다. 어떻게 든 프로 시저를 저장하려고하면 "SQL 구문에 오류가 있습니다. 올바른 구문을 보려면 MySQL 서버 버전에 해당하는 설명서를 확인하십시오. 16 행에서 'END'근처에서 사용하십시오. 도움이 감사 할 것입니다. 5.1.68-CLL
PHP 버전 :MySQL의 저장 프로 시저에 변수 사용

BEGIN 
DECLARE cuentaAtleta INT; 

SELECT COUNT(*) 
INTO cuentaAtleta 
FROM participantes 
WHERE id_participante = id; /* id is a parameter */ 

IF cuentaAtleta > 0 THEN 
    SELECT * 
    FROM participantes 
    INNER JOIN disciplinas ON participantes.id_disciplina = disciplinas.id_disciplina 
    WHERE id_participante = 'id; 

END IF 
END 

그것은 리눅스 서버
MySQL 버젼에서의 5.3.16

답변

3

당신은 문을 종료하지 않은 당신은 구분 기호를 변경하지 않았기 때문에 .

DELIMITER $$ 
CREATE PROCEDURE procNameHERE(IN ID INT) 
BEGIN 

    DECLARE cuentaAtleta INT; 

    SELECT COUNT(*) 
    INTO cuentaAtleta 
    FROM participantes 
    WHERE id_participante = id; 

    IF cuentaAtleta > 0 THEN 
     SELECT * 
     FROM participantes 
       INNER JOIN disciplinas 
        ON participantes.id_disciplina = disciplinas.id_disciplina 
     WHERE id_participante = id; 
    END IF ; 

END $$ 
DELIMITER ; 
+0

당신 말이 맞아,하지만 정말 고마워요 –

+0

당신이'환영하는 경우 또한 내가 마지막에 세미콜론을 잊었 : D'는 지금 일을 했습니까? –

관련 문제