这里是一个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查询时不返回行,但在使用management studio时显示相同的ROUTEID。
我还设置了Excel和数据库之间的连接。excel查询与我在Management Studio中看到的内容相匹配,所以我的PHP似乎是异常的。
我希望PHP查询返回与Excel或Management Studio get相同的结果,但不确定我缺少什么才能获得不同的结果。
网络服务器: Windows Server 2016上的IIS SQL服务器: SQL Server 2008 R2 PHP: 7.3.3 SQLSRV_DRV: 5.6.1
发布于 2019-04-01 06:46:15
结果发现数据库中有一个数据问题。重新复制生产数据库进行测试,现在web服务器返回PHP中的行数,以匹配management studio看到的行数。我不知道为什么management studio可以看到这些记录,而PHP查询却看不到,但是刷新数据库似乎已经清除了这些问题。
https://stackoverflow.com/questions/55444915
复制相似问题