2014-03-02 39 views
0

我想將它插入到表中的歌曲名稱包含一個「'」(撇號),因此請求被執行時出現錯誤。我怎樣才能解決這個問題sqlite.SQLiteException:接近「s」:語法錯誤:因爲撇號

Cursor pid = mDB.rawQuery("select Id FROM MusicPlayer WHERE "Path ='" + sname + "';", null); 

我得到的sname運行時使.. SNAME = /mnt/sdcard/Now Thats What I Call Music 85 [Bubanee]/16 - Let's Get Ready To Rhumble (100% Radio Mix) - PJ & Duncan.mp3

我得到下面的錯誤..

android.database.sqlite.SQLiteException: near "s": syntax error: , while compiling: SELECT Id FROM MusicPlayer WHERE Path ='/mnt/sdcard/Now Thats What I Call Music 85 [Bubanee]/16 - Let's Get Ready To Rhumble (100% Radio Mix) - PJ & Duncan.mp3';

由於SNAME包含與'let's其詞給我錯誤。

+1

逃離撇號 –

+0

@RaghavSood我怎麼逃脫。我得到它的運行時..後逃脫這再次另一個字符串可能有撇號 –

回答

8

從理論上講,您可以在SQL中將'轉義爲''

但是,最好使用變量綁定。在SQL字符串文字與?更換,並提供一個數組對應的String編號:

Cursor pid = mDB.rawQuery("select Id FROM MusicPlayer WHERE Path = ?;", 
    new String[] { sname }); 
+0

這聽起來工作..我會嘗試它 –

1

您可以用逗號內獲得詳細信息斯汀或一些其它方式使用這樣的遊標。

Cursor cursor = odb.rawQuery("SELECT * FROM " + DATABASE_TABLE + " WHERE " + KEY_ITEM + "=?;", new String[]{comboname});

感謝laalto先生你的答案是很好地工作。

相關問題