Как получить выходные значения из хранимой процедуры MS SQL с помощью PHP?

У меня есть следующая хранимая процедура на моем сервере MS SQL:

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 (). Но я не могу понять, как получить значение outpur, используя php.
Кто-нибудь знает, как этого добиться?

Любая помощь будет с благодарностью.

РЕШЕНИЕ

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 должен быть почти таким же. Просто измените возвращаемое значение на:
$ Результат [ ‘выход’];

0

Решение

декларировать OUTPUT parameter в списке параметров вашего SP. OUTPUT parameter вернуть данные обратно в вызывающее приложение. Проверь это Ссылка на сайт для получения дополнительной информации

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

Обновить:

Вызвать ИП и сохранить Вывод. Попробуйте что-то вроде этого

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.
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]