Экранирование

SQLite, Preferences, файлы, SD, Content Provider, XML, JSON
Ответить
Аватара пользователя
andev
Сообщения: 219
Зарегистрирован: 13 янв 2012, 17:56

Экранирование

Сообщение andev » 29 мар 2012, 02:50

Удалял строки в БД с фильтром типа String вот таким образом.

Код: Выделить всё

String collocutor = someValue;
....
db.delete("tablemessages", "phonefrom = " + collocutor, null);
У меня в этом столбце номера телефонов, стал ловить плавающий глюк - некоторые строки не удалялись.
В конце-концов пару раз пробежав в дебаге понял, что дело в формате записи телефона. Они у меня есть просто 123, а есть +123 (вот как раз с + и не удаляло).
Решение элементарное: экранирование при помощи одинарных кавычек, либо, что еще лучше - подстановка параметров, но мне пока лень было их копать :)

Код: Выделить всё

db.delete("tablemessages", "phonefrom = '" + collocutor + "'", null);

Аватара пользователя
andev
Сообщения: 219
Зарегистрирован: 13 янв 2012, 17:56

Re: Экранирование

Сообщение andev » 29 мар 2012, 03:40

Понадобилось удалять по 2 условиям, сразу заюзал параметры :)

Код: Выделить всё

db.delete("tablechats", "phone = ? AND owner = ?", new String[] {phone, owner});

Ответить