Синтаксическая ошибка SQLite рядом с "%" - PullRequest
0 голосов
/ 30 января 2012

Я получаю эту ошибку

android.database.sqlite.SQLiteException: near "%": syntax error: , while compiling: SELECT _id, word, meaning FROM todo WHERE KEY_WORD = +%D9%84

для этого

database.query(DATABASE_TABLE, new String[] {
            KEY_ROWID, KEY_WORD, KEY_MEANING }, "KEY_WORD = " +word, null, null,
            null, null,null);

, когда слово +% D9% 84

Ответы [ 2 ]

3 голосов
/ 30 января 2012

Вы должны выйти из SQL-запроса.Для этого используйте поле selectionArgs (сразу после "KEY_WORD = " +word в вашем коде).Он заменит любой ? в поле выбора следующими элементами:

database.query(DATABASE_TABLE, new String[] {
  KEY_ROWID, KEY_WORD, KEY_MEANING }, KEY_WORD + " = ?", new String[] { word },
  null, null, null, null);

. Для получения более подробной информации прочитайте this .

1 голос
/ 30 января 2012

Вы должны заключить слово в кавычки " символов. Если вы хотите использовать подстановочные знаки, вы должны использовать оператор сравнения like вместо =.

...