Как вставить двойную кавычку (") в поле SQLite Database Varchar? - PullRequest
7 голосов
/ 04 октября 2011

Я пытаюсь вставить в таблицу с этим полем TITLE varchar(200) NOT NULL следующее предложение:

INSERT OR IGNORE INTO EXAMPLETABLE VALUES ("1-Preludi \"Obrint Pas 2011\"", ... 

Проблема в том, что SQLite неправильно понимает \ "escape caracter, и я не знаю, как поставить его для решения проблемы (возможно, код символа?) В моей программе Android.

Ответы [ 5 ]

13 голосов
/ 29 августа 2012

Просто работая с командами sqlite и direct sql insert из командной строки, я обнаружил, что двойные кавычки избегают самих себя.С вашим примером

INSERT OR IGNORE INTO EXAMPLETABLE VALUES ("1-Preludi ""Obrint Pas 2011""", ...
3 голосов
/ 04 октября 2011

Чтобы вставить значения в базу данных, вы всегда должны использовать SQLiteStatement ( HowTo ), так как они экранируют ваши значения и предотвращают нацеливание вашего приложения с помощью SQL-инъекции .

Кроме того, если вы вставляете несколько значений (скажем, в цикле), выполнение предварительно скомпилированного оператора с различными связанными значениями выполняется намного быстрее, чем обычный оператор вставки.

2 голосов
/ 04 октября 2011

Используйте это для вставки данных с любым специальным символом

ContentValues initialValues = new ContentValues();
initialValues.put("Id", id);
initialValues.put("Name", Name);
// ...
myDataBase.insert("EXAMPLETABLE", null, initialValues);
2 голосов
/ 04 октября 2011

Попробуйте что-то похожее:

ContentValues values = new ContentValues();
values.put("YOURCOLUMNNAME", "1-Preludi \"Obrint Pas 2011\"");
// ... other stuff you want to insert ...
SQLiteDatabase db = ... ; // Usually obtained using a SQLiteOpenHelper
long id = db.insertWithOnConflict("EXAMPLETABLE", BaseColumns._ID, values, SQLiteDatabase.CONFLICT_IGNORE);
1 голос
/ 04 октября 2011

Попробуйте это:

INSERT OR IGNORE INTO EXAMPLETABLE VALUES ('1-Preludi "Obrint Pas 2011"', ... 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...