Golang с драйвером MySQL
Я изучаю голанг в последние пару дней, но я так расстроен, потому что я пытаюсь создать простой API CRUD и не могу создать простого пользователя.
Я использую Fiber (очень похожий на Express.js) с golang sql с драйвером mysql.
Вот весь мой обработчик:
func CreateUser(c *fiber.Ctx) {
type InputData struct {
Username string `json:"username"`
Email string `json:"email"`
Password string `json:"password"`
}
// input data
input := new(InputData)
c.BodyParser(input)
// connects to db
db, err := sql.Open("mysql", "root:root@tcp(localhost:8877)/sql")
if err != nil {
log.Fatal(err)
}
// the code freezes here
if err := db.Ping(); err != nil {
log.Fatal(err)
}
fmt.Println("Connected to the MySQL database! ")
// defer will close the connection when the main function has finished
defer db.Close()
// inserts the user
prep, err := db.Prepare("INSERT INTO users (username, email, password) VALUES (?,?,?)")
if err != nil {
panic(err.Error())
}
result, err := prep.Exec(input.Username, input.Email, input.Password)
if err != nil {
panic(err.Error())
}
// response
c.JSON(result)
}
Я делаю то, чего не должен делать?
(кстати, это почти весь мой код, я убрал обработку ошибок)
Хорошего дня, ребята!