所以当我学习 Android 时,我得到了很多关于如何使用ContentProvider
以及如何正确插入东西的建议SqliteDatabase
。现在我有一个没有意义的错误,至少每个人都告诉我的一切都是这样。错误是这样的:
android.database.sqlite.SQLiteException: near "s": syntax error:
while compiling: SELECT * FROM events WHERE time_stamp='07/21/2012 2:59:03 PM' AND
event='Test This's'
只要'
没有出现在任何地方,一切正常。我知道为什么,因为它需要逃脱。但这没有意义,因为每个人都告诉我不要使用原始查询,而是使用提供的绑定方法,如果这甚至有意义的话。让我提供我的示例:
ContentValues newValues = new ContentValues();
newValues.put("event_id", eventId);
newValues.put("event_name", eventName);
newValues.put("start_date", startDate);
newValues.put("start_time", values.getAsString("start_time"));
newValues.put("end_date", endDate);
newValues.put("end_time", values.getAsString("end_time"));
newValues.put("location", values.getAsString("location"));
Long success = database.insert("events_info", null, newValues);
据我所知,既然它假设绑定它,为什么我需要逃避它!?除非这仅适用于其他方法,如query()
和update()
。在任何一种情况下,我都希望有人能阐明在 Android 中为 SQLite 插入准备字符串的正确做法。先感谢您。