gpt4 book ai didi

android - SQL 占位符 ("?") 在 SQLiteDatabae.update 中不起作用

转载 作者:搜寻专家 更新时间:2023-11-01 09:09:01 26 4
gpt4 key购买 nike

我在 ContentProvider 子类的 Update 方法中有以下代码:

当我为 Where 子句使用占位符时,我的更新不起作用(count 等于 0):

不起作用:

rowID = uri.getPathSegments().get(1);
whereStr = "?=?";
count = db.update(PathSQLTable.TABLE_NAME, values, whereStr, new String[]{PathSQLTable.ID_KEY,rowID});

但如果我手动进行替换,一切正常。

这个有效:

rowID = uri.getPathSegments().get(1);
whereStr = PathSQLTable.ID_KEY + "=" + rowID;
count = db.update(PathSQLTable.TABLE_NAME, values, whereStr, null);

我的问题是-- 占位符逻辑中是否存在错误(如 this post 中所建议)或者我做错了什么?

最佳答案

它仅适用于 sql 查询中的输入参数,不适用于列名。因此,如果您尝试这样做,它应该会起作用:

rowID = uri.getPathSegments().get(1);
whereStr = PathSQLTable.ID_KEY + " = ?";
count = db.update(PathSQLTable.TABLE_NAME, values, whereStr,new String[]{rowID});

关于android - SQL 占位符 ("?") 在 SQLiteDatabae.update 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9754117/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com