Проблемът с вашия код е не че предавате аргументите като цяло число (не го правите), но аргументите не се разпознават като TEXT
литерали, защото не са затворени в единични кавички, така че SQLite смята, че са имена на колони.
Препоръчителният начин за предаване на параметрите към rawQuery()
това е:
fun userPresent (user: String, pass: String): Boolean {
val db = writableDatabase
val query = "select * from $TABLE_NAME where username = ? and password = ?"
val cursor = db.rawQuery(query, arrayOf(user, pass))
val result = cursor.count > 0
cursor.close()
db.close()
return result
}
Заместителите ?
ще вземе техните стойности от съответните елементи на масива, подадени като 2-ри аргумент на rawQuery()
и не е необходимо да свързвате единичните кавички, за да избегнете риска от инжектиране на sql.
След това и преди оператора return трябва да затворите и двата Cursor
и db
обект.