Всем привет! Помогите советом. Есть стандартный блок запроса в базу данных Omron/Sysmac. Где один из параметров Where тип String пишется с апострофами ' в начале и в конце. Иногда апостроф присутствует в коде Честный знак и воспринимает его как конец строки. Пытался кодом ascii писать-не помогло. Как его победить?
Комментарии: 13
Andrew
Экранировать пробовали?
Anton
Пробовал, $27. Не помогло. Думаю подрезать строку до этого символа. Костыль, но других вариантов не вижу.
Andrew
А если ' заменить на \' ? Кроме последнего вхождения И первого само собой
Anton
Тогда код будет отличаться. Не найдёт в БД.
Andrew
Т е. вы этот вариант пробовали?
Anton
Попробовал. Ошибки к БД нет, но код не нашёл, что логично.
Andrew
Нелогично, т.к. это экранирование.. sql инъекции по этому принципу возможны Ищите как в вашей бд экранировать символ Чтобы он из управляющего превратился в обычный
Gabrrr
А почему $27 когда сингл кавычка это $39? а всё, там ввод в хексах
Gabrrr
В этом мануале в примерах есть и двойные и одинарные кавычки. По идее можно попробовать внешнюю часть заключить в двойные. Или как вариант не экранировать одинарную кавычку, котрая внутри стейтмента