Android
[Kotlin] SQLite 에서 statement ? parameter 사용하기
bryan.oh
2023. 8. 16. 23:29
반응형
이전 글에서 sql 문을 아래와 같이 만들어서 사용했다면,
fun addData(tableName: String, name: String, age: Int, mobile: String){
val sql = "insert into $tableName (name, age, mobile) values " +
"('$name', $age, '$mobile')"
database?.let{
it.execSQL(sql)
logView("Table $tableName Data Inserted")
} ?: run {
logView("database is null!")
}
}
value 부분을 이렇게 만들면 sql injection에 취약하게 됩니다. : ('$name', $age, '$mobile')
그래서 다음과 같이 사용하는게 좋습니다.
fun addData(tableName: String, name: String, age: Int, mobile: String){
val sql = "insert into $tableName (name, age, mobile) values " +
"(?, ?, ?)"
database?.let{
it.execSQL(sql, arrayOf(name, age, mobile))
logView("Table $tableName Data Inserted")
} ?: run {
logView("database is null!")
}
}
728x90
반응형