我无法在我的
Android应用程序中破解SQLite中的简单更新查询..这是查询,
int fav = 1; Cursor c = sqliteDB.rawQuery("UPDATE "+ MyConstants.TABLE_NAME + " SET "+MyConstants.TABLE_NAME+"."+MyConstants.ISFAV+ " = "+fav+ " WHERE " +MyConstants.TABLE_NAME+"."+MyConstants.WORD_NAME+ " = \""+word_name+"\"",null);
这是例外,
07-06 23:41:48.723: E/AndroidRuntime(1102): FATAL EXCEPTION: main 07-06 23:41:48.723: E/AndroidRuntime(1102): android.database.sqlite.SQLiteException: near ".": syntax error (code 1):,while compiling: UPDATE words SET words.isfavor = 1 WHERE words.word = "hello" 07-06 23:41:48.723: E/AndroidRuntime(1102): at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method) 07-06 23:41:48.723: E/AndroidRuntime(1102): at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:1013) 07-06 23:41:48.723: E/AndroidRuntime(1102): at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:624) 07-06 23:41:48.723: E/AndroidRuntime(1102): at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588) 07-06 23:41:48.723: E/AndroidRuntime(1102): at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58) 07-06 23:41:48.723: E/AndroidRuntime(1102): at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:37) 07-06 23:41:48.723: E/AndroidRuntime(1102): at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:44)
解决方法
你不断使用表名.它应该更像是这样的:
int fav = 1; Cursor c = sqliteDB.rawQuery("UPDATE "+ MyConstants.TABLE_NAME + " SET "+ MyConstants.ISFAV + " = "+fav+ " WHERE " + MyConstants.WORD_NAME + " = \""+word_name+"\"",null);
这应该给你一个看起来更像这样的结果查询:
UPDATE words SET isfavor = 1 WHERE word = "hello"