0

我创建了一个带有以下声明的存储过程:


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;

结束$$

分隔符;


以下是我调用此 SP 的 ZF2 代码:


    $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 ();

这段代码给了我以下错误:


语法错误或访问冲突:例程 zf2.my_test 的 1414 OUT 或 INOUT 参数 2 不是 BEFORE 触发器中的变量或 NEW 伪变量


有人可以建议问题出在哪里吗?另外,我如何检索“OUT”参数的值。

感谢您的回应和帮助。

4

1 回答 1

0

此低级代码检索基本 PDO 连接对象。这样您就可以以 PHP 方式处理结果

于 2013-03-12T23:29:23.763 回答