Синтаксическая ошибка Postgres при использовании 'like' в одинарных кавычках - PullRequest
0 голосов
/ 13 ноября 2018

Я получаю синтаксическую ошибку в запросе PostgreSQL.Я работаю над проектом, разработанным в YII1, получаю сообщение об ошибке

CDbCommand не удалось выполнить инструкцию SQL: SQLSTATE [42601]: Синтаксическая ошибка: 7 ОШИБКА: синтаксическая ошибка в или около"s" LINE 1: ... OT NULL И подзаголовок, такой как "% Women and Children's Voices%".

Как вы можете видеть выше, я использую оператор like в одинарных кавычках,и в строке есть еще одна одиночная кавычка (Children's)Так что PostgreSQL выдает мне ошибку.Пожалуйста, дайте мне решение, чтобы избежать строки.

Ответы [ 3 ]

0 голосов
/ 13 ноября 2018

Я решил эту проблему, заменив одинарные кавычки на двойные, используя PHP. Вот код Существует переменная $ var со значением Women and Children's Voices. Я заменяю эту одинарную кавычку, используя функцию str_replace (). $var = str_replace("'", "''", $var);

0 голосов
/ 13 ноября 2018

Вы должны использовать функцию format для построения оператора SQL, используя заполнитель %L для шаблона.

0 голосов
/ 13 ноября 2018

Вы можете избежать одиночной кавычки в строке, используя другую одинарную кавычку (т. Е. '' вместо '. Обратите внимание, что это два ' символа, а не один " символ):

sub_heading LIKE '%Women and Children''s Voices%'
-- Here -----------------------------^
...