我正在尝试将收件箱中的短信插入SQLite数据库,但由于某些特殊字符/符号,它无法正确插入。
我在Stackoverflow中遇到了一些问题,但似乎没什么用。
我收到了这段代码,但它无效。
data.execSQL("INSERT INTO recor(text) VALUES('"+DatabaseUtils.sqlEscapeString(messag)+"')");
我的数据库中只有一个字段,我正在尝试插入消息的详细信息。我将详细信息(类型,时间,数量,消息)放到单个字符串message
中,recor
是我的表名。
当我使用try catch循环时,这就像吐司一样。
错误就在附近:
“FROM”:语法错误:INSERT INTO recorder(text)VALUES(“FROM 15555215556消息:-MSG”)
答案 0 :(得分:2)
使用DatabaseAdapter的insert方法。 e.g。
ContentValues values = new ContentValues();
values.put(COLUMN_NAME, value);
dbAdapter.insert(TABLE_NAME, null, values);
您的列名称似乎是“文字”?这一定是错的,因为text是sqlite中的关键字。
答案 1 :(得分:0)
您的最终SQL字符串似乎在您插入的字符串周围包含两组引号,因此我假设DatabaseUtils.sqlEscapeString
方法在字符串周围添加了自己的引号。
因此,您的代码应为:
data.execSQL("INSERT INTO recor(text) VALUES("+DatabaseUtils.sqlEscapeString(messag)+")");