sqlite查询中的字符无效?

时间:2012-01-11 17:42:32

标签: java android sqlite

我在创建有效的SQL查询时遇到问题。

我试图检查我的数据库中是否存在值title

以下是我的适配器类中创建查询的方法。

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+"\""附近加上引号,但这对我来说也不起作用。如何使其成为有效的数据库查询?

2 个答案:

答案 0 :(得分:1)

你能尝试一下吗,可能有用。

  Cursor mCursor = db.query(true, DATABASE_TABLE, new String[] {
                    KEY_URL
                    }, 
                    "title=?", 
                    title,
                    null, 
                    null, 
                    null, 
                    null);

答案 1 :(得分:0)

不熟悉SQLite,但我会尝试单引号,如下所示:

 "title" + "='" + title + "'",