Php SQL Server未从存储过程返回值

Php SQL Server未从存储过程返回值,php,sql-server,sqlsrv,Php,Sql Server,Sqlsrv,我尝试使用PHP连接到SQL Server以调用其中的过程。但没有结果返回。请给我一些建议 存储过程示例: ALTER PROCEDURE [MemberJoin] @username varchar(25), @password varchar(50), AS If (EXISTS(SELECT username FROM tbl_user WHERE username = @username )) Begin RETURN -2 End BE

我尝试使用PHP连接到SQL Server以调用其中的过程。但没有结果返回。请给我一些建议

存储过程示例:

ALTER  PROCEDURE [MemberJoin]
    @username varchar(25),
    @password varchar(50),
AS
If (EXISTS(SELECT username FROM tbl_user WHERE username = @username ))
    Begin
        RETURN -2
    End
BEGIN TRANSACTION
BEGIN
   INSERT INTO tbl_user (username , password ) VALUES (@username, @password)
    If (@@ERROR <> 0 OR @@ROWCOUNT = 0)
    Begin
        ROLLBACK TRANSACTION
        RETURN -3
    End
COMMIT TRANSACTION
END

RETURN 1
结果为空,没有错误。 我期望返回值为1、-2或-3


提前谢谢。

您需要声明一个变量来捕获
返回值,然后检查变量的值。下面是一个例子

DECLARE @return_status int;  
EXEC @return_status = dbo.sproc_checkstate;  
SELECT 'Return Status' = @return_status;

对于您正在执行的操作,返回列可能更容易。例如,您可以将
RETURN-2
更改为
选择-2作为RETURN\u status
,并将值作为结果集中的RETURN\u status列返回。

您是否尝试过
[&$RETURN,SQLSRV\u参数输出,SQLSRV\u PHPTYPE\u INT,SQLSRV\u SQLTYPE\u INT]
?参考:这可能会有帮助(使用没有PDO的代码)。非常感谢,我也想更改过程代码。但我无法更改SQL代码。:)
DECLARE @return_status int;  
EXEC @return_status = dbo.sproc_checkstate;  
SELECT 'Return Status' = @return_status;