Всем привет! Помогите советом. Есть стандартный блок запроса в базу данных Omron/Sysmac. Где один из параметров Where тип String пишется с апострофами ' в начале и в конце. Иногда апостроф присутствует в коде Честный знак и воспринимает его как конец строки. Пытался кодом ascii писать-не помогло. Как его победить?

Комментарии: 13

  1. Andrew

    Экранировать пробовали?

    • Anton

      Пробовал, $27. Не помогло. Думаю подрезать строку до этого символа. Костыль, но других вариантов не вижу.

      • Andrew

        А если ' заменить на \' ? Кроме последнего вхождения И первого само собой

        • Anton

          Тогда код будет отличаться. Не найдёт в БД.

          • Andrew

            Т е. вы этот вариант пробовали?

            • Anton

              Попробовал. Ошибки к БД нет, но код не нашёл, что логично.

              • Andrew

                Нелогично, т.к. это экранирование.. sql инъекции по этому принципу возможны Ищите как в вашей бд экранировать символ Чтобы он из управляющего превратился в обычный

      • Gabrrr

        А почему $27 когда сингл кавычка это $39? а всё, там ввод в хексах

  2. Gabrrr

    В этом мануале в примерах есть и двойные и одинарные кавычки. По идее можно попробовать внешнюю часть заключить в двойные. Или как вариант не экранировать одинарную кавычку, котрая внутри стейтмента

Не нашли ответ?

Вам также может быть интересно