Строчная в SQLite для Android - PullRequest
       1

Строчная в SQLite для Android

4 голосов
/ 22 декабря 2011

Теперь у меня возникает проблема с преобразованием заглавных букв в строчные в SQLite для Android.

public Cursor fetchFunctions(String searchword) throws SQLException {
    Cursor mCursor =
        mDb.query(true, FUNCTIONS_TABLE, new String[] {
                FUNS_WORD, FUNS_BODY}, FUNS_WORD + "='" + searchword + "'", null,
                null, null, null, null);
    if (mCursor != null) {
        mCursor.moveToFirst();
    }
    return mCursor;
}

Я хочу преобразовать в LOWER (FUNS_WORD) + "= '" + searchword+ "'" к сожалению, ошибка синтаксиса.Я хочу преобразовать все данные в FUNS_WORD в строчные буквы .

Ответы [ 3 ]

4 голосов
/ 22 декабря 2011

Вам придется использовать rawQuery

public Cursor fetchFunctions(String searchword) throws SQLException {
    Cursor mCursor =
        mDb.rawQuery("SELECT FUNS_WORD, FUNS_BODY FROM FUNCTIONS_TABLE WHERE LOWER(FUNS_WORD) = '" + searchword + "'", null);
    if (mCursor != null) {
        mCursor.moveToFirst();
    }
    return mCursor;
}
1 голос
/ 22 декабря 2011

Вы можете использовать ключевое слово LIKE вместо =.Ключевое слово LIKE нечувствительно к регистру и может использоваться в вашем случае без знака%.

0 голосов
/ 23 мая 2015

В запросе есть уязвимость SQL-инъекции '" + searchword + "'.Это может позволить злоумышленнику скомпрометировать базу данных.

Курсоры должны быть обернуты в блоки try / finally, чтобы они всегда были закрыты после завершения.

public Cursor fetchFunctions(String searchword) throws SQLException {
    Cursor cursor = null;
    try {
      cursor = mDb.rawQuery("SELECT FUNS_WORD, FUNS_BODY FROM FUNCTIONS_TABLE WHERE LOWER(FUNS_WORD) = ?", new String[] { searchword });
      if (cursor != null) {
          cursor.moveToFirst();
      }
    } finally {
      if (cursor != null) {
        cursor.close();
      }
    }
    return cursor;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...