2013-02-21 149 views
0

我已經創建了下面的聲明的存儲過程中檢索出的參數:ZF2從SP呼叫


DELIMITER $$ 

DROP PROCEDURE IF EXISTS my_test$$ 

CREATE PROCEDURE my_test(input_number INT, OUT out_number text) 
BEGIN 
IF (input_number = 0) THEN 
      SET out_number='Errorrrr'; 
ELSE 
      SET out_number='Testing'; 
END IF; 

END $$

DELIMITER;


以下是我ZF2代碼來調用這個SP:


$spResponse = 0; 
    $prepareStmt = $this->dbGateway->createStatement(); 
    $prepareStmt->prepare ('CALL my_test(?,?)'); 
    $prepareStmt->getResource()->bindParam (1, $spRequest); 
    $prepareStmt->getResource()->bindParam (2, $spResponse, \PDO::PARAM_STR, 2); 
    $resultSet = $prepareStmt->execute(); 

此代碼給我下面的錯誤:


語法錯誤或訪問衝突: 1414 OUT或INOUT參數2用於例程zf2.my_test不是vari能夠或新的僞變量在BEFORE觸發器


有人可以提出問題的地方嗎?另外,我如何檢索「OUT」參數的值。

感謝您的回覆和幫助。

+0

請嘗試在這裏 - > http://stackoverflow.com/questions/1303912/how-can-i-use-a-stored-procedure-in-a-mysql-database -with-zend-framework – Crisp 2013-02-21 16:47:28

+0

我問了[一個月前的同一個問題](http://stackoverflow.com/questions/14416204/accessing-mysql-stored-procedure-output-in-zend-framework-2),但沒有運氣。恐怕這個問題可能會導致同樣的結果。如果你在這裏沒有找到答案,也許請問[#zftalk](http://www.zftalk.com/)。我會很有興趣聽到你是否解決這個問題,因爲我沒有試圖解決它,因爲我問我的問題。 – Andy0708 2013-02-21 19:55:57

回答

0

This low level code檢索基本PDO連接對象。這樣你就可以以PHP的方式工作結果