2012-09-24 53 views
1

我有一個SQLite的問題,有些定製的SQL:撇號SQLite中選擇查詢

public Cursor getExistingSpeciesDetails(String sub_id, String english_name) { 
    Cursor c = mDb.rawQuery(
      "SELECT mobileobs.how_many, mobileobs.comment, mobileobs.sensitive, " 
        + "mobileobs.breeding_evidence from mobileobs " 
        + "WHERE mobileobs.sub_id = '" + sub_id 
        + "' and mobileobs.english_name = '" + english_name 
        + "'", null); 
    return c; 
} 

我的問題是在英文名稱(寬尾樹鶯)撇號在SQL(力導致錯誤關閉我的Android應用程序)。在這種類型的條款中有沒有辦法逃避撇號?

在此先感謝

+0

嘗試使用'whereArgs',替換您的查詢'新的String [] {sub_id,english_name}了'null'; '也可以將複雜的'''移除到'WHERE id =? AND name =?' – Aprian

回答

8

爲此,您需要使用SQLIte的參數注入。例如:

Cursor c = mDb.rawQuery(
      "SELECT mobileobs.how_many, mobileobs.comment, mobileobs.sensitive, " 
      + "mobileobs.breeding_evidence from mobileobs " 
      + "WHERE mobileobs.sub_id = ? AND mobileobs.english_name = ?" 
      , new String[]{sub_id, english_name}); 

或如下改變你的輸入參數:

Cetti''s Warbler 
+0

謝謝 - 會試試這個。 – iaindownie