2011-12-09 16 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は、文字列が、列として理解されなければなりません。それを修正するには?

更新:私のストアドプロシージャの最初の部分。

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)"; 
          ^ ^
関連する問題