SQLite查询中的特殊字符(在iPhone中)

llK*_*ull 6 sqlite iphone xcode4 ios5

我正在使用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,但我来自西班牙,我遇到了一些问题.如果我这样做:

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];

此查询返回错误"Error:near"''":语法错误"(因为有"ó"和"à"):

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];

我试着将这些词放在"和之间"之间,而我也是如此.

任何的想法?

Jer*_*emy 0

我没有在 iPhone 上使用过 SQLite,但是您是否浏览过该库以找到构建预编译 SQL 语句的某种方法?这将解决您可能遇到的许多问题,例如 SQL 查询的误解和意外\故意的 SQL 注入。