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