这是我在Android Studio中的代码:
fun find(name: String) {
val db = this.readableDatabase
val cursor = db.rawQuery("SELECT * FROM $MY_TABLE WHERE $NAME='${name}'", null)
if (cursor.moveToFirst()) {
do {
...
} while (cursor.moveToNext())
}
cursor.close()
db.close()
}
这里的问题是,如果'
我要查找的名称的参数值中有一个,则会发生错误。当我尝试在SELECT语句中找到WHERE匹配项时,我知道这'
是导致问题的原因。我该如何解决?SELECT语句中不应使用其他哪些字符?
您可以使用?
占位符,并将参数name
作为数组的项目传递给的第二个参数rawQuery()
:
val cursor = db.rawQuery("SELECT * FROM $MY_TABLE WHERE $NAME = ?", arrayOf(name))
这是一种安全且推荐的传递参数的方法,您不必担心引用字符串参数,因为它将由处理rawQuery()
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句