コードの問題はない 引数を整数として渡しますが(渡しません)、引数は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()
の2番目の引数として渡された配列の対応する項目から値を取得します また、SQLインジェクションのリスクを回避するために、一重引用符を連結する必要はありません。
その後、returnステートメントの前に、両方のCursor
を閉じる必要があります。 およびdb
オブジェクト。