我使用以下声明创建了一个存储过程:
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不是BEFORE触发器中的变量或NEW伪变量
有人可以建议问题出在哪里吗?另外,如何检索“OUT”参数的值。
感谢您的回复和帮助。