【发布时间】:2017-03-11 15:36:41
【问题描述】:
我在我网站的很多页面中都使用了函数sqlsrv_fetch_array,
但由于某种原因,在特定情况下它不起作用。
我在 SQL 中手动发送了查询,它工作正常。 这是我发送的查询的结果:
4721 fino fino@gmail.com Apr 28 2016 7:27PM 127.0.0.1 3 3 Fino Nab MA educ 1 1 60 NULL Danda
处理结果的变量名是$infoQuery。
当我打印sqlsrv_num_rows($infoQuery) 时,结果为 1(正确结果)。
echo sqlsrv_num_rows( $infoQuery ); // result is 1 ( correct result )
但是当我尝试这样做时:
while( $row = sqlsrv_fetch_array( $infoQuery ) ) {
echo "Just printing..";
}
它什么也不打印,这意味着它不起作用。 我正在使用 PHP 7、SQL SERVER 2012、windows 7。 有谁知道为什么会发生这种情况?
【问题讨论】:
-
我没有办法弄清楚您在此处提供的信息出了什么问题。你说你在你网站的其他页面上成功地使用了
sqlsrv_fetch_array,所以这个特定查询的执行方式一定有问题。尝试创建一个 minimal reproducible example 和 edit 您的问题以包含它。 -
问题不在于查询,当我将它直接发送到 SQL 时它运行完美。
-
我明白这一点。我的意思是它在 PHP 中的执行方式一定有问题。
-
在那个循环之前你是否使用过
sqlsrv_fetch_array($infoQuery),例如在var_dump()中?如果是这样,您已经“读取”了查询返回的第一个(仅在这种情况下)行,因此,到循环时,没有更多行要读取,您的while循环将返回 @ 987654333@ 并没有运行。
标签: php sql sql-server sqlsrv