2012-03-19 169 views
1
db.execSQL("INSERT OR REPLACE INTO 'sms' (sms_id,text) VALUES (10,'__[ ]__|"?___'[email protected]@- '');"); 

來看,它的源碼,並顯示該行對我說:sqlite的插入特殊字符

SQLiteManager: Likely SQL syntax error: INSERT INTO 'sms' (sms_id,text) VALUES (10,'__[ ]__|"?___'[email protected]@- ''); [ unrecognized token: "@" ] 
Exception Name: NS_ERROR_FAILURE 
Exception Message: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [mozIStorageConnection.createStatement] 

我需要一個代碼插入任何文字與任何符號

+1

navidonline,使用'StringEscapeUtils.escapeSql(串)'詳細描述[StringEscapeUtils](http://commons.apache.org/lang/api-2.1/org/apache/commons/lang/StringEscapeUtils.html) – 2012-03-19 07:56:47

+0

還有一個幫助[在SQLite中轉義字符串](http:// groups.google.com/group/android-developer s/browse_thread /線程/ 819d470eae5b939f?pli = 1) – 2012-03-19 08:00:31

回答

0

通常有包裝的功能,如

sql_execute('INSERT INTO `table`(a,b,c) VALUES (?,?,?)',1,2,3); 

和那些?問號做引號和其他需要的東西g et您的數據。

不確定適用於Android,但適用於大多數編程框架。

+0

謝謝,但它不是我的答案 – Navidonline 2012-03-19 07:27:37

2

你好,我想你應該看看逃脫qutes雙qutes '' SQLite中

Sqlite FAQ Site - Escaping quotes

所以你的情況:

INSERT INTO 'sms' (sms_id,text) VALUES (10,'__[ ]__|"?___''[email protected]@- ''); 
+0

這個帖子由用戶發佈,我不能改變它 – Navidonline 2012-03-19 07:30:45

+0

我不明白。請解釋你的意思。 – 2012-03-19 07:49:36

+0

我的應用程序的用戶將消息發送到我的服務器和我不能改變他們。我的消息需要一個代碼中插入的任何文本與任何符號 – Navidonline 2012-03-19 08:13:17