2011-11-14 91 views
0

我試圖使用方法如下執行INSERT sqlite的語句到我的數據庫:包括SQLite中插入語句斜線

public void insertBluetoothPath(String path, String build) { 

    String[] ColumnName = new String[1]; 
    ColumnName[0] = "path"; 

    SQLiteDatabase myDB = null; 
    myDB = this.openOrCreateDatabase(DB_PATH, MODE_PRIVATE, null); 

    myDB.execSQL("INSERT INTO phones VALUES(" + build + ", " + path + ");"); 
    myDB.close(); 

} 

和我打電話使用 insertBluetoothPath(finalPath, phoneBuild);

與變量的方法 String phoneBuild = Build.MODEL;String finalPath = "/mnt/sdcard"

但是,我收到語法錯誤異常

sqlite returned: error code = 1, msg = near "/": syntax error 

Failure 1 (near "/": syntax error) on 0x2b3ca8 when preparing 'INSERT INTO phones VALUES(sdk, /mnt/sdcard);'. 

如何在數據庫中插入斜槓?提前致謝。

+0

嘗試使用準備好的語句 - http://stackoverflow.com/questions/433392/how-do-i-use-prepared-statements-in-sqlite-in-android – Eugene

+0

你應該使用轉義字符。檢查這個帖子。 http://stackoverflow.com/questions/4132996/escape-special-characters-in-sqlite –

回答

4

好的,請仔細閱讀尤金的評論。

問題不在於斜線......問題在於你的插入語句。 INSERT語句看起來應該是這樣的:「INSERT INTO phones VALUES('sdk','/ mnt/sdcard')」 請注意你的語句中缺少單引號?

這是你想要

myDB.execSQL("INSERT INTO phones VALUES('" + build + "', '" + path + "');"); 

但如果你問我,請不要使用此方法,使用準備好的語句,因爲上面的方法就容易受到SQL注入,如果你不小心的。

+0

感謝您的回答!有效 – androidnoob

0

只是用這樣的單引號包裝路徑。

myDB.execSQL("INSERT INTO phones VALUES(" + build + ", " + "'" + path + "'" + ");"); 

我認爲這應該有所幫助。