【发布时间】:2012-06-01 20:04:29
【问题描述】:
Android sqlite 命令就像 db.delete(table, whereClause, whereArgs); whereClause 是一个字符串,例如“column1 = ? and column2 = ?” whereArgs 是一个字符串数组,它保存将在 whereClause 中替换的值。 有没有一种简单的方法可以让我从中获取解码的字符串(用于记录目的)。 String.format 似乎很接近,但并不完全。这就是我的目标:
Log.e(MY_DEBUG_TAG,
"Error executing Delete(" + table + ", " +
String.format(whereClause, whereArgs + ")");
【问题讨论】:
-
为什么要让自己容易受到 SQL 注入攻击(或计算出所有需要的引用)而不是以正常方式使用参数化查询?
-
我正在使用参数化查询。只是当我遇到问题时,我想阅读日志,看看我试图做什么。 string[].ToString() 没有给出关于数组中字符串的任何有用信息,所以我想知道如何将参数变成易于阅读的字符串。
-
我很抱歉 - 我错过了这只是为了记录的事实。我个人只会记录参数化的 SQL 并单独记录参数。
-
我要问的是,当出现错误时,堆栈跟踪会显示已编译的查询。它看起来像一个常规的 SQL 查询,以一种很好的人类可读形式。我想用相同的格式记录查询。但是将 where 子句和 whereargs 转换为友好的字符串似乎很乏味。我希望有一个简单的方法。想到String.format,但不太对。
标签: android sqlite string.format