PHP没有找到一些记录

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (18)

这里有一个PHP / SQLSRV问题的新手。我有一个生成SQL查询的PHP页面(下面的示例):

$conn = sqlsrv_connect($serverName, $connectionOptions);  
if($conn == false)  
  die( print_r(sqlsrv_errors(),true));

$tsql = "SELECT ROUTEID,QTY,ITEMID,INVENTTRANSREFID FROM WMSORDERTRANS WHERE ROUTEID LIKE '%" . $routeID . "%' ORDER BY ROUTEID";
$getRouteInfo = sqlsrv_query($conn,$tsql); 
if ($getRouteInfo) {
  $rows = sqlsrv_has_rows( $getRouteInfo );
  $counter = 0;
  if ($rows === true) {
    while ($row =sqlsrv_fetch_array($getRouteInfo,SQLSRV_FETCH_ASSOC)) {
      $counter++;
      echo $row['ROUTEID']."<BR>";
    }
    echo ("COUNT=" . $counter . "<BR><HR>");
  } else {
    echo "There are no rows. <br />";
  }
} else {
  echo ("Something failed in SQLSRV_QUERY<BR>");
}

在PHP中执行时,计数返回603行。如果我将完全相同的查询复制/粘贴到SQL Management Studio中,我会获得9562行。

我不知道为什么同一个查询会导致行计数出现如此大的差异。有关我应该寻找什么/在哪里找到这种差异的原因的任何建议?

我已经将查询更改为使用“LIKE”通配符和显式ROUTEID目标。一些routeid的返回行,其他不通过PHP查询但在使用管理工作室时显示相同的ROUTEID。

我还在Excel和数据库之间建立了连接。excel查询与我在Management Studio中看到的匹配,所以我的PHP似乎是异常。

我希望PHP查询返回与Excel或Management Studio相同的结果但不确定我缺少什么来获得不同的结果。

Web服务器:Windows Server 2016上的IIS SQL Server:SQL Server 2008 R2 PHP:7.3.3 SQLSRV_DRV:5.6.1

提问于
用户回答回答于

事实证明,数据库中存在数据问题。是否重新生成了生产数据库以进行测试,现在Web服务器返回PHP中的行数以匹配管理工作室所看到的行数。不知道为什么管理工作室可以看到记录和PHP查询不能,但刷新数据库似乎已经清除它。

扫码关注云+社区

领取腾讯云代金券