- Регистрация
- 09.10.2015
- Сообщения
- 3 916
- Благодарностей
- 3 867
- Баллы
- 113
Столкнулся с проблемой, что я не понимаю как наиболее правильно экранировать спецсимволы в переменной, которая затем подставляется в sql запрос.
Обычно экранирование символов - это метод, который предоставляется из провайдера для СУБД, которую используешь.
Для MySQL везде советуют использовать в C#:
Но у нас ведь нет доступа к классу MySql? А если делать экранирование через "Regex.Escape()" - правильно ли это?
Вторая ситуация.
Если не использовать C# код, а брать кубики - как правильно экранировать данные?
Будут ли они экранироваться, если "использовать параметры в запросе":
?
Потому что просто подстановка переменной в тело запроса как раз приводит к тому, что там переменная не экранированная (что логично), но тогда крайне не логично, что в поле "значение" в скрине выше - нельзя вставить переменную, точнее нет ни автокомплита, ни при клике на ПКМ - там нет выпадающего списка с переменными (это ужас как неудобно).
Обычно экранирование символов - это метод, который предоставляется из провайдера для СУБД, которую используешь.
Для MySQL везде советуют использовать в C#:
Код:
MySql.Data.MySqlClient.MySqlHelper.EscapeString("YOUR DATA STRING")
Вторая ситуация.
Если не использовать C# код, а брать кубики - как правильно экранировать данные?
Будут ли они экранироваться, если "использовать параметры в запросе":
?
Потому что просто подстановка переменной в тело запроса как раз приводит к тому, что там переменная не экранированная (что логично), но тогда крайне не логично, что в поле "значение" в скрине выше - нельзя вставить переменную, точнее нет ни автокомплита, ни при клике на ПКМ - там нет выпадающего списка с переменными (это ужас как неудобно).
Последнее редактирование: