2012-02-26 93 views
1
Cursor mCursor = mDb.query(true, CUSTOMER_TABLE_NAME, 
     new String[] {GENERIC_ID_KEY, ADDRESS_KEY, PHONE_KEY, EMAIL_KEY,CUSTOMER_NAME_KEY}, 
     GENERIC_ID_KEY + "=" + customerDbId, null, 
     null, null, null, null); 

如果GENERIC_ID_KEY和customerDbId是字符串,我应该如何修改此命令。 我试过使用像在黑白但仍然消极的结果,引发n错误。在sqlite中使用select语句

+0

抛出什么错误信息? – ariefbayu 2012-02-26 09:25:48

回答

1

如果customerDbId那么一个字符串类型放置在报价

之间的

GENERIC_ID_KEY + "= '" + customerDbId + "'" 
+1

这是非常危险的。为什么不使用android的默认sql转义:'GENERIC_ID_KEY +“=?”,new String {customerDbId},..' – 2012-02-26 10:02:57

+0

你想说什么@BorisStrandjev buddy – 2012-02-26 10:09:37

+1

如果追加字符串值就像你建议你冒SQL SQL注入风险。查询的正确方法是:'Cursor mCursor = mDb.query(true,CUSTOMER_TABLE_NAME,new String [] {GENERIC_ID_KEY,ADDRESS_KEY,PHONE_KEY,MAIL_KEY,CUSTOMER_NAME_KEY},GENERIC_ID_KEY +“=?”,new String [] {customerDbId },null,null,null,null);'使用where参数更安全。 – 2012-02-26 10:13:05

0

这是一个光标问题。确保光标是选择前的第一个状态。