stmt, err := db.Prepare(fmt.Sprintf(`UPDATE keys SET %s = %s + %d WHERE key = '%s';`, row, row, sum, apiKey))
if err != nil {
log.Panic(err)
}
defer stmt.Close()
_, err = stmt.Exec()
if err != nil {
log.Panic(err)
}
}
Код по непонятным мне причинам замораживается на строчке:
stmt, err := db.Prepare(fmt.Sprintf(`UPDATE keys SET %s = %s + %d WHERE key = '%s';`, row, row, sum, apiKey))
В чем может быть проблема ?
Бд: sqlite3
намертво?
Да, просто ничего не происходит, ни паник, ничего
ну дебагом провалиться внутрь вариант?
зачем вам prepare, если вы ими не пользуетесь?
Я тоже об этом задумался и убрал
да не нужно убирать, нужно использовать
Всмысле. Так я же использую
https://golang.org/pkg/database/sql/#DB.Prepare уже кидал же
значения sum и apikey нужно не в строку запроса подставлять, а в Exec
А в чем разница?
а если apikey := " ' OR '1'='1" ? https://ru.wikipedia.org/wiki/%D0%92%D0%BD%D0%B5%D0%B4%D1%80%D0%B5%D0%BD%D0%B8%D0%B5_SQL-%D0%BA%D0%BE%D0%B4%D0%B0
Спасибо, полезно
Prepare делает return и всё, зависает
Обсуждают сегодня