Android和SQLite:转义引用并将其取回

时间:2014-10-18 15:30:36

标签: android sqlite escaping

我必须在SQLLite中保存一些数据。此文本数据可以包含引号(')。有没有办法在插入时转义此char,并在从数据库获取数据时将其取回?

特别是,名称是对文件的引用。因此该文件可以命名为" hel' lo.file"。在将其转发到数据库之前,它应该是" hel' lo.file"。但当我把它拿回来时我又需要" hel' lo.file"确保db中的字符串与文件名匹配。

我正在使用内容提供商和SQLiteOpenHelper。

在我的内容提供商内部,对于插入我执行此操作:

_id = db.insert(TextEditorContract.NoteEntry.TABLE_NAME, null, values);

我在我的活动中插入:

        ContentValues values = new ContentValues();
        ...
        values.put(NoteEntry.COLUMN_TITLE, getFileTitle());
        Uri recordUri = contentResolver.insert(NoteEntry.CONTENT_URI, values);

1 个答案:

答案 0 :(得分:1)

使用SQLiteOpenHelper - 然后您可以使用预准备语句。请参阅此问题:Android SQLite Example

修改

String file = "/storage/emulated/0/Note/hello 'world.txt"

String sql = "SELECT _id FROM Recents WHERE percorso=? ORDER BY _id ASC";
String[] data = {file};
Cursor cursor = database.rawQuery(sql, data);