我试图在execSQL语句中设置一个整数和一个字符串值:
mydb.execSQL("UPDATE emptable set age=? where name=?",new int[] {emp_age},new String[] {emp_name});
Run Code Online (Sandbox Code Playgroud)
其中emp_age是一个整数,emp_name是一个String.但这不起作用.我怎么能实现这个目标?
Luk*_*uth 11
对不起,但我对给出的答案不满意,我会解释原因.
@hotveryspicy答案不仅丑陋而且危险.我会提醒您SQL注入的可能性,这可能会花费您存储的数据.@john史密斯的答案也是如此.
@ user1318091答案不正确的原因与使所有这些答案(包括您给定的示例代码)错误的原因相同.如果您阅读文档,您会注意到它说:
执行一个不是 SELECT/INSERT/UPDATE/DELETE的SQL语句.
在第一行.它还列出了上述操作的替代方案:
对于UPDATE语句,请改用以下任何一种语句.
- update(String,ContentValues,String,String [])
- updateWithOnConflict(String,ContentValues,String,String [],int)
如果您选择使用simple update()-method,您的查询将如下所示(未经测试!):
ContentValues values = new ContentValues();
values.put("age", age); // your integer...
mydb.update("emptable", values, "name=?", new String[]{emp_name});
Run Code Online (Sandbox Code Playgroud)
另请检查此问题以获取正确的"where"-syntax:使用ContentValues更新sql数据库和update-method
| 归档时间: |
|
| 查看次数: |
4622 次 |
| 最近记录: |