Проблема с выполнением SQL запроса в php скрипте СУБДД MS SQL

avs19

Новичок
Проблема с выполнением SQL запроса в php скрипте СУБДД MS SQL

Добрый день
Пока ответа не нашел, прошу помощи

Работаю с MS SQL

сразу оговорюсь, что имена полей изменить не могу, таблицы не мои


$sql="SELECT * FROM dbo.tsdlist WHERE '21' LIKE '%WM%' ";

при таком написании ошибок пхп не дает, но запрос возвращает пустой результат.

Вставлю в sql -клиент MS SQL этот запрос SELECT * FROM dbo.tsdlist WHERE '21' LIKE '%WM%'
и получаю, что имена столбцов должны бвть в двойных кавычках
SELECT * FROM dbo.tsdlist WHERE "21" LIKE '%WM%'
вот такой вариант в sql-клиенте от ms sql выполняется нормально
вставляю его в пхп скрипт в разных вариантах:

$sql="SELECT * FROM dbo.tsdlist WHERE '21' LIKE '%WM%' ";

$sql='SELECT * FROM dbo.tsdlist WHERE "21" LIKE "%WM%" ';

$sql="SELECT * FROM dbo.tsdlist WHERE `21` LIKE '%WM%' ";

$sql='SELECT * FROM dbo.tsdlist WHERE "21" LIKE `%WM%` ';

$sql='SELECT * FROM dbo.tsdlist WHERE "21" LIKE \"%WM%\"';

ничего не проходит или возвращает пустой запрос или дает ошибку синтаксиса как например при использовании `

При работе с mysql таких проблем не возникало.

Прошу совета, готов ответить на вопросы по теме.


MS SQL - Express русский вариант
extension=php_mssql.dll
 

Sigorma

Новичок
PHP:
$sql = "SELECT * FROM dbo.tsdlist WHERE \"21\" LIKE '%WM%'";
но подозреваю что ошибка где угодно но только не в запросе и мифических кавычках.
 

avs19

Новичок
Автор оригинала: Sigorma
PHP:
$sql = "SELECT * FROM dbo.tsdlist WHERE \"21\" LIKE '%WM%'";
но подозреваю что ошибка где угодно но только не в запросе и мифических кавычках.
возвращает пустой рещультат

Да, забыл сообщить, что без условия WHERE запрос и скрипт отрабатывают нормально и выводят результат, даже больше скажу

вот такой проверочный мой вариант
$sql="SELECT * FROM dbo.tsdlist WHERE \"21\" LIKE '%'";

выводит все данные из быза нормально

С моим условием WHERE "21" LIKE '%WM%' необходимые записи из таблицы выводятся только используя собственный клиент от MSSQL

-~{}~ 19.02.10 15:03:

вопрос снят, вышел из ситуации заключил имя столбца в [] SELECT * FROM dbo.tsdlist WHERE [21] LIKE '%WM%'
 

HEm

Сетевой бобер
21 - это даже для микрософтовской базы ненормальное название для таблицы
 

avs19

Новичок
я же говорю ничего не могу сделать с названиями таблиц, не моя база, мне только надо было с неё информацию вытащить и это ещё не самое страшное название, там и похлеще есть со слэшами
 

HEm

Сетевой бобер
dimagolov
раза в два ;)

avs19
мы тебя не виним, но ненормальность заметить можно, так же как в случае с названиями таблиц, содержащими пробелы и прочие непотребные символы
 
Сверху