2012-06-14 6 views
0

데이터베이스에 프로 시저를 저장 했으므로 테이블을 조회하고 ID를 상호 참조해야하며 반환 된 행을 사용하여 다른 테이블에 정보를 삽입해야하지만 사용할 수없는 것 같습니다 룩업으로부터 삽입에의 정보 이것은 내가 가지고있는 것입니다 ..MySQL 저장 프로 시저 내에서 선택 사용

어떤 도움을 많이 주시면 감사하겠습니다!

답변

1

'을 놓친 이후로 @UIDTOFB 값을 삽입하지 않습니다. 이 전체 명령문을 하나의 문자열로 취하므로 명령문은 실패합니다.

SET @SQLTEST = CONCAT('SELECT users.user_auto_id FROM users WHERE users.user_fb_uid=  @UIDTOFB LIMIT 1'); 
PREPARE sqlcmd from @SQLTEST; 
EXECUTE sqlcmd; 

어쨌든 난 당신과 같은 매개 변수를 사용하는 것이 좋습니다 것 :

PREPARE sqlcmd from 'SELECT users.user_auto_id FROM users WHERE users.user_fb_uid= ? LIMIT 1'; 
EXECUTE sqlcmd USING @UIDTOFB; 

당신은 그것을 here in the manual에 대한 자세한 내용을보실 수 있습니다.

업데이트 : 이제 무엇을하고 싶은가요. 다음과 같이 간단하게 처리하십시오 :

SELECT @anyVariable:=users.user_auto_id FROM users WHERE users.user_fb_uid= @UIDTOFB LIMIT 1; 
INSERT INTO challenges(challenge_from_uid, challenge_to_uid, challenge_dateadded) VALUES(@UID, @anyVariable, now()); 
+0

동일한 절차로 반환되는 users.user_auto_id를 어떻게 사용합니까? – rorypicko

+0

@RoryPickering 내 대답이 업데이트되었습니다. – fancyPants

+0

고마워요! 많이 감사, 머리 통증의 시간을 절약;) 하하 – rorypicko

관련 문제