2011-12-09 2 views
0

adodb5를 사용하여이 저장 프로 시저를 호출하지만 $ sealID는 문자열을 인식하지 못합니다.adodb를 사용하여 MySQL 저장 프로 시저에 문자열을 전달할 수 없습니다

$db = NewADOConnection('mysql://'.DB_USER.':'.DB_PASS.'@'.DB_SERVER.'/'.DB_NAME); 
$sql = "CALL GetSeal($userID, $sealID, @result)"; 
$r = $db->Execute($sql); 

이 쉘을 쉘에서 실행할 때.

TestGetSealProc.php 3155011 ZZZZNLJSAYGZECWY 

MySQL은보고 :

Unknown column 'ZZZZNLJSAYGZECWY' in 'field list' 

ZZZZNLJSAYGZECWY이 문자열하지만 열로 이해되어야한다. 그것을 고치는 방법?

업데이트 : 내 저장된 proc의 첫 번째 부분.

CREATE DEFINER=`root`@`localhost` PROCEDURE `GetSeal`(IN userID INT, IN sealID char(16), OUT result INT) 
    BEGIN 

     DECLARE imageCnt INT; 
     DECLARE pointCnt INT; 
     DECLARE puriCode varchar(256); 
     DECLARE newImgID INT; 
.... 

     DECLARE c_data CURSOR FOR 
      SELECT TELEPHONE_NUMBER, IMG_FILENAME, SELECTION_FLG, PHOTOGRAPH_DATE, SEND_DATE 
      FROM re_photograph_imgs 
      WHERE SEAL_NUMBER = sealID 
      AND IMG_FILENAME IS NOT NULL 
      AND IMG_FILENAME != ""; 

......................

+1

GetSeal은 어떻게 비슷합니까? – ajreal

답변

1

따옴표를 잊지 마세요. 그것들이 없으면 노출 된 문자열이 필드 이름으로 해석됩니다.

$sql = "CALL GetSeal($userID, '$sealID', @result)"; 
          ^ ^