2012-01-27 5 views
1

я пытаюсь использовать этот код:как я вставить запятую строку в БД SQLite

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 получить запятую?

ответ

4

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

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

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

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

1

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

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

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

db.execSQL(sql); 

db.close(); 
0

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

Смежные вопросы