Как избежать специальных символов, таких как 'в sqlite в Android
У меня есть функция, которая выполняет запрос к таблице в базе данных SQLite. Я объявляю константу:public static final String CANADA_HISTORY = "Canada's History";
, Это хранится вString
переменная, скажемdifficulty
,
У меня есть один запрос:
Cursor c = mDb.rawQuery("select * from Questions_answers where CHAPTERS = '"+difficulty+"'" , null);
Это исключение рядом с апострофом.
Выход Logcat:
I/Database( 1170): sqlite returned: error code = 1, msg = near "s": syntax error
D/AndroidRuntime( 1170): Shutting down VM
W/dalvikvm( 1170): threadid=1: thread exiting with uncaught exception (group=0x40015560)
E/AndroidRuntime( 1170): FATAL EXCEPTION: main
E/AndroidRuntime( 1170): android.database.sqlite.SQLiteException: near "s": syntax error: , while compiling: select * from Questions_answers where CHAPTERS = 'Canada's History'
Я также попробовал:
1. difficulty=difficulty.replaceAll("'","''");
2. difficulty=difficulty.replaceAll("'","\'");
3. difficulty = DatabaseUtils.sqlEscapeString(difficulty);
Чтобы добавить к этому, он работает на меня для таких слов, какCanada History
Я имею в виду без специального символа слова.
Пожалуйста, дайте мне совет для решения проблемы Спасибо.