2
respostas

Não entendi o uso de $1 no insert

func CriaNovoProduto(nome, descricao string, preco float64, quantidade int) {
    db := db.ConectaComBancoDeDados()

    insereDadosNoBanco, err := db.Prepare("insert into produtos(nome, descricao, preco, quantidade) values($1, $2, $3, $4)")
    if err != nil {
        panic(err.Error())
    }

    insereDadosNoBanco.Exec(nome, descricao, preco, quantidade)
    defer db.Close()
}

Na função eu não entendi muito bem para que usamos values($1, $2, $3, $4) e depois que chamamos os campos, era só uma validação de insert?

2 respostas

$1, $2, $3, $4 são identificadores que serão substituídos pelos valores dos parâmetros passados para Exec. Acho que o postgres que usa assim, alguns bancos usam um ? outros usam identificadores mais descritivos como :param.

Oi Rodrigo, obrigado pela resposta. Pelo que entendi, é um padrão do postgres, se eu criar uma conexão com SQL Server, esse identificador poderia ser um interrogação ou qualquer outro, certo?