在sqlite insert语句中包含斜杠

时间:2011-11-14 09:22:50

标签: android database sqlite

我正在尝试使用以下方法将INSERT 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);'.

如何在数据库中插入斜杠?提前致谢。

2 个答案:

答案 0 :(得分:4)

好的,仔细阅读尤金的评论。

问题不是斜线......问题是你的插入语句。 INSERT语句应如下所示“INSERT INTO phones VALUES('sdk','/ mnt / sdcard')” 请注意您的声明中缺少单引号?

这就是你想要的

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

但是如果你问我,不要使用这种方法,请使用Prepared Statements,因为上面的方法很容易注入SQL,如果你不小心的话。

答案 1 :(得分:0)

用这样的单引号包装路径。

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

我认为这应该有所帮助。