从';视图';在PHP和SQL Server中导致执行超时

从';视图';在PHP和SQL Server中导致执行超时,php,sql-server,executiontimeout,Php,Sql Server,Executiontimeout,我创建了一个名为stats的视图,用于选择符合某个属性的记录的总和 CREATE VIEW stats AS SELECT SUM(CASE WHEN attribute = '1' THEN 1 ELSE 0 END) AS attribute1, SUM(CASE WHEN attribute = '2' THEN 1 ELSE 0 END) AS attribute2 FROM table GO 视图创建得很好,当我在SQL Server Management Studi

我创建了一个名为
stats
视图
,用于选择符合某个属性的记录的总和

CREATE VIEW stats
AS
SELECT
    SUM(CASE WHEN attribute = '1' THEN 1 ELSE 0 END) AS attribute1,
    SUM(CASE WHEN attribute = '2' THEN 1 ELSE 0 END) AS attribute2
FROM table
GO
视图创建得很好,当我在SQL Server Management Studio中说
SELECT*FROM stats
时,结果显示得很好

问题是当我使用PHP获取数据时:

$GRAB_STATS_DATA = $DBH->query("SELECT * FROM stats");
while($row = $GRAB_STATS_DATA->fetch()){
    $attribute1 = $row['attribute1'];
    ... // and so on
}
我收到一个错误,上面写着
[PHP致命错误:在第17行的C:\…中超过了300秒的最大执行时间]

为什么上面的超时使用PHP(或执行时间超过300秒)但在SQL Server Management Studio中显示良好?

使用:

foreach ($GRAB_STATS_DATA->fetchAll() as $row){
  $attribute1 = $row['attribute1'];
    ... // and so on
}

可能是您与DB服务器的通信不好?@AresDraguna,请详细说明?与DB的所有其他通信都正常。在抓取之前放置一个骰子()。因此,请在while()之前查看是否超过while@AresDraguna,好的,我在
while()
之前添加了
die()。因此,似乎在
while()
?PDO之前超过了时间?使用
foreach($GRAB\u STATS\u DATA->fetchAll()作为$row){