PHP не находит некоторые записи

Новичок здесь с проблемой 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 отображается при использовании студии управления.

Я также устанавливаю соединение между Excel и базой данных. Запросы excel соответствуют тому, что я вижу в Management Studio, поэтому мой PHP кажется аномалией.

Я ожидаю, что запрос PHP вернет тот же результат, что и Excel или Management Studio, но не уверен, чего мне не хватает, чтобы получить разнообразный результат.

Веб-сервер: IIS на Windows Server 2016 SQL-сервер: SQL-сервер 2008 R2 PHP: 7.3.3 SQLSRV_DRV: 5.6.1

Обновите PHP до 7.3.3 и MS SQLSRV_DRV до 5.6.1 с тем же результатом в подсчете строк запроса.

Sregor 31.03.2019 22:40
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
1
54
1

Ответы 1

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

Другие вопросы по теме