Всем привет. Имеется приложение на objective-c. Приложение периодически отправляет текст на сервер. Но если в передаваемом тексте имеется ' - одинарная кавычка, то от сервера приходит следующее сообщение:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'dded. Dad add\"'','','')' at line 1";
Передается текст в POST запросе. Как решить эту проблему??
...
Дело в том что на сервер отправляется скажем так текст сообщения, который набирает пользователь приложения. Текст с остальными атрибутами упаковывается в NSDictionary и далее отправляется в виде POST параметров на сервер. Текст набранный пользователем может иметь например такой вид: I'll be back. И при отправке этого текста возникает ошибка.
Самым простым вариантом решения будет замена одинарной кавычки на что-то типа - ` символ обратного апострофа. А правильным вариантом решения проблемы будет экранирование символов, которые могут исполнятся как код, читайте про sql-injection
Ваша ошибка скорее всего связана с тем, что Вы пишете в базу непосредственно пользовательский текст, а так делать не надо, например:
resp = get() # типа получили данные от пользователя
db.session('select * from table where id = {0}'.format(resp)) # обратились к базе
так вот, если resp = '1' все норм, но пользователь может отправить что-то другое, и теперь у вас resp = '1; DELETE FROM table;'
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости