问题描述
我尝试使用PHP连接到sql Server,以在其中调用过程。但是没有结果返回。请给我一些建议。
示例存储过程:
struct tm
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
结果为null,无错误。 我希望返回值为1,-2或-3
谢谢。
解决方法
您需要声明一个变量以捕获return
的值,然后检查该变量的值。下面是一个示例。
DECLARE @return_status int;
EXEC @return_status = dbo.sproc_checkstate;
SELECT 'Return Status' = @return_status;
对于您正在做的事情,返回一列可能会更容易。例如,您可以将RETURN -2
更改为SELECT -2 as return_status
并将值作为结果集中的 return_status 列返回。