2011-12-09 32 views
0

我使用adodb5來調用這個存儲過程,但MySQL不明白$ sealID是一個字符串無法傳遞字符串到MySQL存儲過程使用adodb

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

當我從shell運行這個PHP。

TestGetSealProc.php 3155011 ZZZZNLJSAYGZECWY 

MySQL的報道:

Unknown column 'ZZZZNLJSAYGZECWY' in 'field list' 

ZZZZNLJSAYGZECWY必須被理解爲一個字符串,但一列。如何解決它?

更新:我的存儲過程的第一部分。

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)"; 
          ^ ^
相關問題