Задать вопрос
Ответы пользователя по тегу SQL
  • Что автор имеет в виду в этом абзаце?

    EireenK
    @EireenK
    Если нужно экранировать wildcards (%, _) в строке для LIKE, плейсхолдер использовать не получится, т.к. quoting, выполняемый при подстановке в плейсхолдер, сбивает экранирование wildcard-ов:

    Then, the quoting (whether by quote() or the placeholder processing) turns \%chicken\% into '\\%chicken\\%'.


    Т.е. экранированные через strtr проценты снова превратились в полноценные wildcard-ы.

    Чтобы экранирование wildcard-ов не слетало, quoting должен идти перед strtr(). Поэтому убираем плейсхолдер и вручную выполняем quote().
    Ответ написан
    Комментировать