2012-02-26 100 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

這是一個光標問題。確保光標是選擇前的第一個狀態。