我正在尝试使用以下方法将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);'.
如何在数据库中插入斜杠?提前致谢。
答案 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 + "'" + ");");
我认为这应该有所帮助。