我在创建有效的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+"\""周围加上引号,但这对我也不起作用。如何使它成为有效的数据库查询?

最佳答案

你可以尝试一下,可能会工作。

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

09-25 16:29
查看更多