У меня есть простое приложение для Android, которое подключается к моему серверу и сохраняет таблицу в базе данных и показывает нужную строку базы данных с нажатием кнопки.
Проблема заключается в том, что когда я хочу достичь своих строк, используя столбец «date», он выдает это исключение ниже.
Ну, если я вызываю строку по id, все работает правильно.Синтаксис Sqlite Android при чтении строк
Мой вопрос в том, что это связано с точками переменной даты или чем-то еще? Примечание: я смотрел базу данных с программами с открытым кодом, и все выглядит нормально, но я не могу читать строки с помощью android с использованием столбца даты.
это мое исключение
02-09 19:45:21.909: E/AndroidRuntime(8286): Caused by: android.database.sqlite.SQLiteException:
near ".2014": syntax error (code 1): , while compiling: SELECT DISTINCT _id, Date, Day, v1, v2, v3,
v4 FROM db1 WHERE Date=07.02.2014
Моя страница Команда SQL
DATABASE_CREATE = "create table " + DbTableName + " (" + KEY_ROWID
+ " integer primary key autoincrement, " + KEY_Date
+ " text not null, " + KEY_Day + " text not null, " + KEY_v1
+ " text not null, " + KEY_v2 + " text not null, " + KEY_v3
+ " text not null, " + KEY_v4 + " text not null "
+ ");";
мой метод GET
public Cursor getDay(String date) throws SQLException {
Cursor mCursor = db.query(true, DATABASE_TABLE, new String[] {
KEY_ROWID, KEY_Date, KEY_Day, KEY_v1, KEY_v2, KEY_v3, KEY_v4 },
KEY_Date + "=" + date, null, null, null, null, null);
if (mCursor != null) {
mCursor.moveToFirst();
}
return mCursor;
}
это о выпуске sqlinjection? – user2638084
Да, метод '?' Bind arg предотвращает проблемы синтаксиса и SQL-инъекции, а в некоторых случаях повышает производительность. Но исходной проблемой было то, что строковый литерал не цитировался. – laalto
хорошо, это было то, что я думал в первую очередь. Спасибо за ваше решение. – user2638084