如何使用PHP从MS SQL存储过程中获取输出值?
我的MS SQL server上有以下存储过程:如何使用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
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部分)。所以我接受你的回答。谢谢你的帮助!