Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 php+pdo+sqlsrv = добавляет лишние кавычки (MS SQL 2008R2)  [new]
agneshka1990
Guest
$DBH = new PDO("sqlsrv:server=localhost;database=test", user, pass);
$DBH->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$DBH->prepare("SELECT * FROM ord WHERE ord_date='20101010' ")->execute();

Profiler показывает следующий запрос
SELECT * FROM ord WHERE ord_date=''20101010'' (по две одинарные кавычки)

И изза кавычек запрос не проходит.

Если кавычки не ставить совсем - получаем
SELECT * FROM ord WHERE ord_date=20101010 (ессно не работает)

Чем лечить чтобы были лишь одни кавычки?
10 авг 14, 15:48    [16422903]     Ответить | Цитировать Сообщить модератору
 Re: php+pdo+sqlsrv = добавляет лишние кавычки (MS SQL 2008R2)  [new]
Офисный Хомячок
Member

Откуда: Офис
Сообщений: 1358
Заменить <<'>> на <<''>>?

И да причем тут SLQ SERVER-то?
10 авг 14, 17:55    [16423059]     Ответить | Цитировать Сообщить модератору
 Re: php+pdo+sqlsrv = добавляет лишние кавычки (MS SQL 2008R2)  [new]
_human
Member

Откуда:
Сообщений: 569
agneshka1990,
select char(39)
?
10 авг 14, 18:02    [16423067]     Ответить | Цитировать Сообщить модератору
 Re: php+pdo+sqlsrv = добавляет лишние кавычки (MS SQL 2008R2)  [new]
agneshka1990
Guest
Офисный Хомячок
Заменить <<'>> на <<''>>?
И да причем тут SLQ SERVER-то?


профайлер показывает не двойные, а две одинарные кавычки.
и да, при том что при использовании mysql такого не возникает.

_human
что с этим делать? запрос с такой записью не работает
10 авг 14, 21:27    [16423498]     Ответить | Цитировать Сообщить модератору
 Re: php+pdo+sqlsrv = добавляет лишние кавычки (MS SQL 2008R2)  [new]
Офисный Хомячок
Member

Откуда: Офис
Сообщений: 1358
agneshka1990
Офисный Хомячок
И да причем тут SLQ SERVER-то?


профайлер показывает не двойные, а две одинарные кавычки.


Наверное это означает, что вы ошиблись в синтаксисе PHP, разве нет?

И сформировали для SLQ SERVER синтаксически не верную команду.

Руководство по PHP Справочник языка Типы
Если строка заключена в двойные кавычки ("), PHP распознает большее количество управляющих последовательностей для специальных символов:

Чтобы использовать одинарную кавычку внутри строки, проэкранируйте ее обратной косой чертой (\).


agneshka1990
и да, при том что при использовании mysql такого не возникает.


Внезапно mysql и ms sql разные сервера, у них разные авторы:)

_human
что с этим делать? запрос с такой записью не работает


Исправить
11 авг 14, 00:14    [16424043]     Ответить | Цитировать Сообщить модератору
 Re: php+pdo+sqlsrv = добавляет лишние кавычки (MS SQL 2008R2)  [new]
Glory
Member

Откуда:
Сообщений: 104751
agneshka1990
Чем лечить чтобы были лишь одни кавычки?

научиться писать параметризированные запросы
http://php.net/manual/en/pdostatement.bindparam.php
11 авг 14, 00:17    [16424055]     Ответить | Цитировать Сообщить модератору
 Re: php+pdo+sqlsrv = добавляет лишние кавычки (MS SQL 2008R2)  [new]
agneshka1990 Guest
Guest
Офисный Хомячок
Советую посмотреть на первый пост и включить функцию "читать внимательно".


Glory
Ага :)


зы: уже не торт
зызы: ключевое слово Профайлер
11 авг 14, 00:35    [16424120]     Ответить | Цитировать Сообщить модератору
 Re: php+pdo+sqlsrv = добавляет лишние кавычки (MS SQL 2008R2)  [new]
Офисный Хомячок
Member

Откуда: Офис
Сообщений: 1358
agneshka1990 Guest
зы: уже не торт
зызы: ключевое слово Профайлер


Это ребус? Профайлер не торт? Что вы имели ввиду?
11 авг 14, 00:39    [16424133]     Ответить | Цитировать Сообщить модератору
 Re: php+pdo+sqlsrv = добавляет лишние кавычки (MS SQL 2008R2)  [new]
Glory
Member

Откуда:
Сообщений: 104751
agneshka1990 Guest
зы: уже не торт
зызы: ключевое слово Профайлер

Ничего, что Профайлер показывает тот текст команды, который сервер уже получил оо вашего приложения ?
11 авг 14, 10:21    [16424689]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить