1

我的数据库开发人员创建了一个存储过程,它返回最后一个 ID,但不像输出参数。

.
.
.
        SET @NewContractSvcLID = @@IDENTITY
        RETURN @NewContractSvcLID
END

如何使用 MSSQL 在 PHP 中获得该值?谢谢。

笔记。我像结果集(mssql_fetch_row)一样尝试,但通过简单的回显,我看到了不同的结果,只是一个“1”。

4

2 回答 2

1

您可以只编写一个临时查询以将值作为结果集返回。

DECLARE @return_value INT
EXEC @return_value = MyProcedure
SELECT @return_value
于 2013-09-25T21:59:23.823 回答
1

经过大量测试,我找到了解决方案。我不知道这是最好的,但它有效。当您绑定参数时,您必须绑定RETVAL(返回值),然后当调用 mssql_execute 时,将执行存储过程并返回输出参数的值(如果存在)以及 RETVAL 返回值。

注意:输入 => SQLINT4 假设值为 INT

例子:

$stmt = mssql_init($your_sp_name);
mssql_bind($stmt, "RETVAL",$return_value,  SQLINT4);

$result = mssql_execute($stmt);

echo $return_value;//output your return value

手册说: The PHP variable you'll bind the MSSQL parameter to. It is passed by reference, to retrieve OUTPUT and RETVAL values after the procedure execution.

但是当我通过引用传递变量时,会出现错误 500。

mssql_bind($stmt, "RETVAL",&$return_value,  SQLINT4);//get error 500

mssql_bind($stmt, "RETVAL",$return_value,  SQLINT4);//this will works
于 2013-09-25T23:38:33.787 回答