У меня возникли проблемы с созданием действительного SQL-запроса.Недопустимые символы в sqlite-запросе?
Я пытаюсь проверить, есть ли значение, title
присутствует в моем db.
Вот мой класс адаптера, который создает запрос.
public Cursor byTitle(String title) throws SQLException {
Cursor mCursor = db.query(true, DATABASE_TABLE, new String[] {
KEY_URL
},
"title" + "=" +title,
null,
null,
null,
null,
null);
if (mCursor != null) {
mCursor.moveToFirst();
}
return mCursor;
}
И его называют OnClick с
holder.fb.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
final FDBAdapter db = new FDBAdapter(ctx);
title = holder.itemName.getText().toString();
db.open();
Cursor c = db.byTitle(title);
if (c.getCount()>0) {
while (c.moveToNext()) {
Toast.makeText(ctx, "yup! " + c.getString(0), Toast.LENGTH_LONG).show();
}
} else {
Toast.makeText(ctx, "nope! " + holder.itemName.getText().toString(), Toast.LENGTH_LONG).show();
}
c.close();
db.close();
}
});
Моей ошибкой android.database.sqlite.SQLiteException: near "Rootz": syntax error: , while compiling: SELECT DISTINCT url FROM favs WHERE title=[Guide] Rootz Wiki's List of ROMs/Kernels/Tweaks/Theme's/Radios LTE Edition
Я пытался ставить кавычки title
как "\""+title+"\""
, но это не работает для меня тоже. Как я могу сделать это действительным db-запросом?
Это сделало. Спасибо. Можете ли вы объяснить мне этот вопрос? Что такое =? означает? Является ли это проверкой его существования? – r2DoesInc
вопросительный знак указывает, что значение будет указано в selectArgs, а не в выборе гостиницы. Вы можете объединить все количество? и дать им в selectionArgs – nandeesh
на самом деле я был неправ, я ошибся код, и он просто возвращал отрицательный каждый раз. с вашим примером кода, его недействительным java. my 'title' - одна строка. [Guide] Rootz Wiki Список ROM/Ядро/Tweaks/Тема/Радио LTE Edition и объявляется как String несколько раз – r2DoesInc