Что является альтернативой необходимости использовать подготовленные операторы sqlite для экранирования символов - PullRequest
2 голосов
/ 27 декабря 2010

Я работаю над приложением для iPhone, которое использует базу данных SQLite, и пытаюсь обработать escape-символы.Я знаю, что есть LIKE ESCAPE для обработки escape-символов в операторах select, но в моем приложении у меня есть действия SELECT, INSERT, UPDATE, и я действительно не знаю, как работать с escape-символами.

Ответы [ 3 ]

3 голосов
/ 22 декабря 2012

, если вы используете функцию all-in-one sqlite3_exec (), Вам не нужно использовать функции sqlite3_bind *. просто передайте строку sqlite3_mprintf () с % q токеном

sqlite3_mprintf("%q","it's example");

и строка вывода

it''s example
2 голосов
/ 27 декабря 2010

Используйте FMDB , и тогда вам не придется.Он имеет встроенную поддержку привязки параметров , и он позаботится о любом побеге, который вам нужен.

0 голосов
/ 27 декабря 2010

Я полагаю, что вы просто должны сообщить SQLite, какой у вас символ перехода в конце оператора SQL.Например:

SELECT * FROM MyTable WHERE RevenueChange LIKE '%0\%' ESCAPE '\'

LIKE будет соответствовать значениям, таким как 30%, 140% и т. Д. Символ, который я использовал, \, может быть любым.

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