आपके कोड में समस्या है नहीं कि आप तर्कों को पूर्णांक (आप नहीं) के रूप में पास करते हैं, लेकिन तर्कों को 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
}
प्लेसहोल्डर ?
rawQuery()
. के दूसरे तर्क के रूप में पारित सरणी के संबंधित आइटम से उनके मान लेंगे और आपको सिंगल कोट्स को संयोजित करने की आवश्यकता नहीं है ताकि आप sql इंजेक्शन के जोखिम से बच सकें।
उसके बाद और रिटर्न स्टेटमेंट से पहले आपको Cursor
दोनों को बंद करना होगा। और db
वस्तु।