0

重複の可能性:
Android の sqlite で ' のような特殊文字をエスケープする方法

Android の SQLite データベースに値を格納するためにフォームを使用しています。いずれかのフィールドに文字 ' が含まれている場合、エラーが発生するのでエスケープしようとしましたが、エラーはまだ残っています。

これは私のコードです:

public boolean createCalendar(String id, String name, String descr) {
    try{
        String newDescr = descr.replace("'", "\\'");
        db.execSQL("INSERT INTO Calendar (id, name, description) VALUES " +
                "('"+id+"','"+name+"','"+newDescr+"');");
       ...
    }
}

そして、これはエラーです:

sqlite returned: error code = 1, msg = near "siksjs": syntax error, db=/data/data/com.pfc.app/databases/SSDB
android.database.sqlite.SQLiteException: near "siksjs": syntax error: , while compiling: INSERT INTO Calendar (id, name, description) VALUES ('43779fcb-3d8c-650b-b529-50810506375e','kdldlls','ddk \' siksjs');

どのように保管すればよいですか?

ありがとう!

4

1 に答える 1

0

使用する

p_query = "select * from mytable where name_field = ?";
mDb.rawQuery(p_query, new String[] { uvalue });

または

String newDescr = descr.replaceAll("'", "''");
于 2012-10-19T08:02:36.857 に答える