Java SQLite Update查询无法正常工作

时间:2015-01-22 15:39:21

标签: java android sqlite

在几小时(基本上整整一天)蠕动,包裹我的注意事项等等之后,我感到困惑的是为什么我在SQLite中的UPDATE语句不想工作。 它涉及以下查询:

sql.Update("UPDATE SAVEGAME SET _id = \"save\" WHERE _id = null");
sql.Update("UPDATE SAVEGAME SET WORLD_ONE = \""+finishedLevels+"\" WHERE _id = 'save'");

我也试过

sql.Update("UPDATE SAVEGAME SET _id = 'save' WHERE _id = null");
sql.Update("UPDATE SAVEGAME SET WORLD_ONE = '"+finishedLevels+"' WHERE _id = 'save'");

但无济于事。

我正在调用的函数是:

public void Update(String query){
    SQLiteDatabase db = this.getWritableDatabase();
    db.execSQL(query);

    db.close();
}

调试清楚地表明函数正在调用并逐步执行但拒绝工作。 我调用的任何其他SQL函数(例如创建新表等)都存在 db.close()调用。

我也尝试过查看UDPATE语句工作的不同项目,但是我找不到任何差异(我的SQLLib类的实例,函数调用是相同的,等等) 调用UPDATE语句似乎很简单,但它在某处有错误。

这个错在哪里?因为我现在完全失去了。

-Zubaja

1 个答案:

答案 0 :(得分:2)

当您需要使用= null时,您正在使用is null

变化:

sql.Update("UPDATE SAVEGAME SET _id = \"save\" WHERE _id = null");

对此:

sql.Update("UPDATE SAVEGAME SET _id = \"save\" WHERE _id is null");
                                                        ^^^^

此外,您可能想要检查如何创建SQL字符串 - 插入这样的变量会使代码容易受到SQL注入攻击。