При создании API Symfony 4 с базой данных SQL Server я столкнулся с проблемой: мне нужно извлечь два разных результата из одной хранимой процедуры.
Первый результат - это массив данных, асекунда - это просто значение типа int.
Я кодирую внутреннюю нумерацию страниц, и поэтому мне нужно получить данные, а также общее количество строк в таблице.
Вот моя хранимая процедура:
ALTER PROCEDURE [SP IDENTIFIER]
(
@Limit INT,
@Offset INT
)
AS
BEGIN
SET NOCOUNT ON;
SELECT
COUNT(*) AS 'TOTAL'
FROM DataBaseName
SELECT Field1, Field2, Field3
FROM DataBaseName
ORDER BY Field1 DESC
OFFSET @Offset ROWS
FETCH NEXT @Limit ROW ONLY
END
Когда я тестирую мой API, он возвращает только результат моего первого запроса (значение числа строк).
Вот как работает мой метод репозитория:
public function getDatas($limit, $offset)
{
$request = "EXEC SPName ?, ?";
$answer = $this->_em->getConnection()->prepare($request);
$answer->bindParam(1, $limit);
$answer->bindParam(2, $offset);
$answer->execute();
return $answer->fetchAll();
}
Знаете ли вы какой-нибудь способ заставить PDO возвращать все результаты, полученные им по запросу?Может быть, в варианте выборки или каким-то образом делать цикл fetchAll в $ answer?
Спасибо!