2016-03-31 37 views
2

我正在使用SQLite數據庫,但現在我在使用查詢時遇到了問題。 例如,如果使用這樣的查詢:Android SQLiteException參數

SQLiteDatabase db = mHelper.getReadableDatabase(); 

    String parameter = mypar; 
    String sql = SELECT color, name FROM table WHERE name = '" + parameter + "'; 
    Cursor c = db.rawQuery(sql, null); 
    while (c.moveToNext()) { 
    String color = c.getString(0); 
    String name = c.getString(1); 
} 
     c.close(); 
     db.close(); 

一切正常

但是,如果該參數有一個頂點

String parameter = mypar'; 

我得到一個異常

Caused by: android.database.sqlite.SQLiteException: near "r": syntax error (code 1): 

我怎麼解決這個問題?謝謝

+0

pos異常和完整的代碼, –

+0

你如何執行查詢?你在使用.rawQuery嗎?如果是這樣,你應該使用.query,並將其作爲參數傳遞。防止sql注入也很好。 – avjr

+0

我編輯我的帖子 – user2847219

回答

1

這是我的解決方案,工作正常!試試吧

String parameter = mypar'; 
String sql = SELECT color, name FROM table WHERE name = ?; 
Cursor c = db.rawQuery(sql, new String[] { parameter }); 
+0

是的,謝謝你! – user2847219