Php SQL Server未从存储过程返回值
我尝试使用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
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;