2016-03-31 42 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