Я знаю, как поместить текст в таблицу sqlite3 в задаче c.Вот как я это делаю:
NSString *sql = [NSString stringWithFormat: @"INSERT OR REPLACE INTO myTable (name, response) VALUES ('%@','%@');", name, response];
char *err;
if (sqlite3_exec(db, [sql UTF8String], NULL, NULL, &err) != SQLITE_OK)
{
sqlite3_close(db);
}
Моя большая проблема в том, что, поскольку текст, который я помещаю в таблицу, исходит непосредственно от пользователя, он может содержать любые символы, включая такие, как апострофы, который должен быть экранирован перед помещением в таблицу.
У меня есть два основных вопроса:
- Помимо апострофов, какие еще символы мне нужно экранировать для текста SQL, которыйпользователь может ввести?
- Каков наилучший способ изменить строку NSString для экранирования перед символами, которые необходимо экранировать, перед тем, как поместить его в таблицу sql?Стоит ли просто использовать сканер и анализировать строковый символ за символом в поисках символов, которые следует экранировать?
Спасибо!