Я использовал следующий код для вызова хранимой процедуры и получения ее возвращаемого значения.Код создает временную хранимую процедуру, которая принимает два входных параметра и возвращает их сумму через возвращаемое значение.Если ваша хранимая процедура выполняет запросы, убедитесь, что вы обрабатываете все доступные результаты с помощью sqlsrv_next_result, прежде чем пытаться получить доступ к возвращаемому значению.
Надеюсь, эта информация поможет вам.
Код ниже:
$conn = sqlsrv_connect('.\SQLExpress', array('Database'=>'Northwind'));
$sql = "CREATE PROCEDURE #ReturnParam (@p1 int, @p2 int) AS
RETURN @p1 + @p2";
$stmt = sqlsrv_query($conn, $sql);
$sql = '{? = CALL #ReturnParam(?, ?)}';
$returnVariable = -1;
$inputVariable1 = 18;
$inputVariable2 = 24;
$params = array(array($returnVariable, SQLSRV_PARAM_OUT),
array($inputVariable1, SQLSRV_PARAM_IN),
array($inputVariable2, SQLSRV_PARAM_IN));
$stmt = sqlsrv_query($conn, $sql, $params);
echo "Return value: ".$returnVariable;