【发布时间】:2018-12-06 16:58:38
【问题描述】:
使用 SQL Server 数据库构建 Symfony 4 API,我遇到了一个问题:我必须从一个存储过程中获取两个不同的结果。
第一个结果是一个数据数组,第二个只是一个 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 返回他从请求中得到的所有结果吗?也许在 fetch 选项中,或者以某种方式在 $answer 中执行 fetchAll 循环?
谢谢!
【问题讨论】:
标签: php sql-server symfony pdo doctrine-orm