2012-01-27 13 views
1

dbの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つの名前を混同だと思う)だ、カンマではありません。

1

別のアポストロフィを入力して、それをエスケープします。

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

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

db.execSQL(sql); 

db.close(); 
0

SQL標準では、1つの行に2つの単一引用符を付けることによって、文字列内の一重引用符をエスケープするように指定しています。
http://www.sqlite.org/faq.html#q14

関連する問題