Как вставить строку с запятой в БД sqlite? - PullRequest
1 голос
/ 27 января 2012

Я пытаюсь использовать этот код:

    String message = "this is david's house";

    String sql = "INSERT into " + TABLE + "(message) VALUES ('" + message + "')";

    db.execSQL(sql);

    db.close();

, чтобы вставить строку в БД, но получить это исключение:

 01-27 14:52:01.083: E/Database(727): Failure 1 (near "id": syntax error) on 0x12a038 when  preparing 'INSERT into calls_table (message) VALUES  ('this is david's house')'.

Как я могу сделатьSQLite получить запятую?

Ответы [ 3 ]

4 голосов
/ 27 января 2012

Вы должны правильно выбрать ':

String message = "this is david''s house";

Или, если sqlite поддерживает это (я не знаю), параметризованные запросы лучше.

И просто чтобы упомянуть это: ' - это не запятая, это апостроф (по крайней мере, я думаю это правильное имя, я часто путаю имя для что один).

1 голос
/ 27 января 2012

Побег, предоставив еще один апостроф.

String message = "this is david''s house";

String sql = "INSERT into " + TABLE + "(message) VALUES ('" + message + "')";

db.execSQL(sql);

db.close();
0 голосов
/ 27 января 2012

Стандарт SQL указывает, что одиночные кавычки в строках экранируются путем помещения двух одинарных кавычек в строку.
http://www.sqlite.org/faq.html#q14

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