PHP не находит некоторые записи - PullRequest
0 голосов
/ 31 марта 2019

Новичок здесь с проблемой 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

1 Ответ

0 голосов
/ 01 апреля 2019

Оказывается, была проблема с данными в БД. Сделал повторную копию производственной базы данных для тестирования, и теперь веб-сервер возвращает количество строк в PHP, соответствующее тому, что видит студия управления. Понятия не имею, почему управляющая студия могла видеть записи, а PHP-запрос не мог, но обновление базы данных, похоже, прояснило ее.

...