Para quem resolveu desenvolver o projeto com o MYSQL em opção ao Postgres, a query de insert vai falhar pois o driver não suporta os marcadores $1,$2,$3,$4.
Esses devem ser substituidos por ?
func CriaNovoProduto(nome string, descricao string, preco float64, quantidade int) {
db := db.ConectaBanco()
criaProduto, err := db.Prepare("insert into produtos (nome, descricao, preco, quantidade) values (?, ?, ?, ?)")
if err != nil {
panic(err.Error())
}
criaProduto.Exec(nome, descricao, preco, quantidade)
defer db.Close()
}