Решено: я протестировал запись запроса как хранимую процедуру, и снова он по-прежнему неверно указал в php. В конечном итоге я узнал, что, поскольку у меня есть несколько столбцов с нулями, PHP читал их странно. Разочаровать, чтобы узнать, что Perl справился с этим лучше, но хорошо.
Я использую PHP 5.3.3 с adodb для доступа к серверу MS SQL 2012. Большинство моих запросов были в порядке, но я пытаюсь выполнить полное соединение с помощью подстановочных знаков.
Вот часть:
on a_table.hostname LIKE '%' + r_table.Hostname + '%' OR '%' + a_table.hostname like r_table.Name + '%'
Когда я выполняю запрос в SQL Studio, я получаю 1224 записи. В PHP, 2406. Я просмотрел журналы на сервере sql, и выполняемый запрос является точным, а при копировании и вставке возвращает ожидаемое / правильное количество результатов.
Если я отредактирую запрос в своем PHP и удаляю конкатенированные% s, тогда результаты будут соответствовать выполнению запроса напрямую (если также будут удалены шаблоны).
Я проверил запрос с функциями mssql PHP и adodb с теми же результатами.
EDIT: Я только что проверил запрос с тремя способами: через Perl, Sql studio и PHP. Студия Perl & SQL одинакова – PHP все еще не прав.
Я протестировал запись запроса как хранимую процедуру, и снова он по-прежнему неверно указал в php. В конечном итоге я узнал, что, поскольку у меня есть несколько столбцов с нулями, PHP читал их странно.