我创建了一个带有以下声明的存储过程:
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”参数的值。
感谢您的回应和帮助。