Специальные символы в SQLite Query (в iPhone) - PullRequest
6 голосов
/ 11 февраля 2012

Я использую SQLite для приложения для iPhone и использую запрос, подобный следующему:

NSString *query = [[NSString alloc] initWithFormat:@"INSERT INTO Courses (name, credits, web, tName, tSurname, tMail, tOffice) VALUES (\'%@\', \'%@\', \'%@\', \'%@\', \'%@\', \'%@\', \'%@\');", self.name, self.credits, self.web, self.tName, self.tSurname, self.tMail, self.tOffice];

Это простая ВСТАВКА, но я из Испании и у меня проблемы с тильдами. Если я сделаю что-то вроде:

INSERT INTO Courses (name, credits, web, tName, tSurname, tMail, tOffice) VALUES ('test', 'test', 'test', 'test', 'test', 'test', 'test');", self.name, self.credits, self.web, self.tName, self.tSurname, self.tMail, self.tOffice];

Все отлично работает.

Проблема возникает, когда я делаю вставку с двумя или более словами со «специальными символами», такими как ¿, ¡, `, ', - ... И я не знаю, как это исправить: S Если только запрос содержит специальный символ, нет проблем.

Например:

Этот запрос работает (потому что есть только "á"):

INSERT INTO Courses (name, credits, web, tName, tSurname, tMail, tOffice) VALUES ('Matemáticas', '1', '', 'Name', 'Surname', 'a@a.com', '');", self.name, self.credits, self.web, self.tName, self.tSurname, self.tMail, self.tOffice];

Этот запрос возвращает мне ошибку «Ошибка: рядом с« »»: синтаксическая ошибка »(потому что есть« и »и« а »):

INSERT INTO Courses (name, credits, web, tName, tSurname, tMail, tOffice) VALUES ('Gestió', '1', '', 'à', 'Surname', 'a@a.com', '');", self.name, self.credits, self.web, self.tName, self.tSurname, self.tMail, self.tOffice];

Я пытался поместить слова между "и между", и я получил то же самое.

Есть идеи?

1 Ответ

0 голосов
/ 11 февраля 2012

Я не работал с SQLite на iPhone, но вы просмотрели библиотеку, чтобы найти какой-то способ создания предварительно скомпилированного оператора SQL?Это решит множество проблем, с которыми вы можете столкнуться, таких как неправильное толкование запросов SQL и случайное \ преднамеренное внедрение SQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...