作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我在 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/
我是一名优秀的程序员,十分优秀!