sql >> Databáze >  >> RDS >> SQLite

Jak zjistit, že uživatel je přítomen v databázi Sqlite pomocí Androidu?

Problém s vaším kódem není že předáte argumenty jako Integer (není), ale že argumenty nejsou rozpoznány jako TEXT literály, protože nejsou uzavřeny v jednoduchých uvozovkách, takže SQLite si myslí, že jde o názvy sloupců.

Doporučený způsob předání parametrů do rawQuery() je toto:

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
}

Zástupné symboly ? převezme jejich hodnoty z odpovídajících položek pole předávaného jako 2. argument funkce rawQuery() a nemusíte spojovat jednoduché uvozovky, abyste se vyhnuli riziku vložení SQL.
Po tomto a před příkazem return musíte zavřít oba Cursor a db objekt.



  1. Změňte typ sloupce a nastavte jej na hodnotu ne null

  2. Optimalizace databáze:Indexy

  3. Jak funguje funkce INSERT() v MariaDB

  4. Mezipaměť výsledků