Новичок здесь с проблемой PHP / SQLSRV.У меня есть страница PHP, которая генерирует запрос SQL (пример ниже):
$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 обнаруживается при использовании Management Studio.
Я также установил соединение между Excel и базой данных.Запросы Excel совпадают с тем, что я вижу в Management Studio, поэтому мой PHP выглядит аномалией.
Я ожидаю, что запрос PHP выдаст тот же результат, что и Excel или Management Studio, но не уверен, что мне не хватаетполучить различный результат.
Веб-сервер: IIS в Windows Server 2016 SQL Server: SQL Server 2008 R2 PHP: 7.3.3 SQLSRV_DRV: 5.6.1