Включить косые черты в операторы вставки sqlite - PullRequest
0 голосов
/ 14 ноября 2011

Я пытаюсь выполнить 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 ]

4 голосов
/ 14 ноября 2011

Хорошо, внимательно прочитайте комментарий Юджина.

Проблема не в косых чертах ... Проблема в том, что вы используете оператор вставки.Оператор INSERT должен выглядеть следующим образом: «INSERT INTO phones VALUES ('sdk', '/ mnt / sdcard')" Заметили отсутствие одинарных кавычек в вашей записи?

Это то, что вы хотите

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

Но если вы спросите меня, не используйте этот метод, используйте подготовленные операторы, так как описанный выше метод будет подвержен внедрению SQL, если вы не будете осторожны.

0 голосов
/ 14 ноября 2011

Просто оберните путь в одинарные кавычки следующим образом.

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

Я думаю, это должно помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...