如何使用PHP从MS SQL存储过程中获取输出值?

如何使用PHP从MS SQL存储过程中获取输出值?,php,sql-server,stored-procedures,sqlsrv,Php,Sql Server,Stored Procedures,Sqlsrv,我的MS SQL server上有以下存储过程: CREATE PROCEDURE checkFollowing ( @myMemberID INT, @otherMemberID INT ) AS BEGIN IF EXISTS (SELECT 1 FROM Followers WHERE follower = @myMemberID AND followed = @otherMemberID) RETURN 1 ELSE RETURN 0 END

我的MS SQL server上有以下存储过程:

CREATE PROCEDURE checkFollowing 
(
    @myMemberID INT,
    @otherMemberID INT
)
AS
BEGIN

IF EXISTS (SELECT 1 FROM Followers WHERE follower = @myMemberID AND followed = @otherMemberID)
    RETURN 1
ELSE
    RETURN 0    
END 
GO
到目前为止,在我的PHP代码中,我有这个方法:

function iAmFollowing($mymemberID, $otherMemberID) {
    $query = "EXEC checkFollowing @myMemberID = ?, @otherMemberID = ?";
    $stmt = sqlsrv_query($this->con, $query, array(&$mymemberID, &$otherMemberID));
    $result = sqlsrv_fetch_array($stmt);

    return $result[0];
}
正如我现在意识到的,我无法使用sqlsrv_fetch_array()命令获取返回值。但是我似乎不知道如何使用php获取outpur值。 有人知道如何做到这一点吗

任何帮助都将不胜感激

解决方案

CREATE PROCEDURE checkFollowing 
(
    @myMemberID INT,
    @otherMemberID INT
)
AS
BEGIN

IF EXISTS (SELECT 1 FROM Followers WHERE follower = @myMemberID AND followed = @otherMemberID)
    SELECT 1 AS 'output'
ELSE
    SELECT 0 AS 'output'    
END 
GO
php代码应该几乎相同。只需将返回值更改为:
$result['output']

在SP的参数列表中声明
输出参数。
输出参数将数据返回给调用应用程序。查看此了解更多信息

CREATE PROCEDURE checkFollowing 
(
    @myMemberID INT,
    @otherMemberID INT,
    @output INT OUTPUT
)
AS
BEGIN

IF EXISTS (SELECT 1 FROM Followers WHERE follower = @myMemberID AND followed = @otherMemberID)
    SELECT @output= 1
ELSE
    SELECT @output= 0    
END 
GO
更新:

调用SP并存储输出。试试这样的

DECLARE @appout int; -- variable to hold the data returned by SP.

EXEC checkFollowing 10,20, @output = @appout OUTPUT; -- This is how i will call a SP.

@appout - will hold the data returned by the procedure.

谢谢你的回答。因此,当我尝试使用“EXEC checkFollowing@memMymberID=?,\@otherMemberID=?;”运行它时,它不会返回任何结果。你知道怎么回事吗?@user68621?我不熟悉
PHP
编码。我只是一个TSQL的家伙。检查我的答案,这就是我调用带有输出参数的SP的方式。啊,好的。当我在mssql management studio中运行您的解决方案时,它正在工作,但我还需要让我的PHP代码检索输出参数。但我感谢你迄今为止的帮助:)我发现如何解决这个问题有点不同。但您的建议也是问题的解决方案(不管怎样,SQL部分)。所以我接受你的回答。谢谢你的帮助!