Я разрабатываю телеграмм-бота на языке программирования Golang. Пока что его задача просто регистрировать пользователя в БД mysql после команды /start. Но я столкнулся с проблемой, бот добавляет одного и того же юзера если он пропишет /start. Я попытался как-то решить эту проблему, но не выходит. Вот код:
db := sqlConn()
times := time.Now().Unix()
_, err := db.Query("SELECT chat_id FROM telegram WHERE chat_id=?", chatID)
if err != nil {
fmt.Println("Пользователь уже есть в базе данных")
} else {
res, err := db.Prepare("INSERT INTO telegram (chat_id, username, timestamp) VALUES (?, ?, ?)")
if err != nil {
panic(err.Error())
}
_, err = res.Exec(chatID, userName, times)
if err != nil {
panic(err.Error())
}
defer db.Close()
}
По идее всё должно работать всё так: мы в БД ищем пользователя по chat_id, если он есть, то ошибки соответственно нету, а значит что пользователь уже есть в БД. Но, если пользователя нет, то по идее должна появляться ошибка, которую мы обрабатываем и сохраняем пользователя в БД. Но проблема в том, что это не работает, пользователь добавляется сколько хочет. Вопрос в том как это решить?