Sobes.tech
Junior — Middle

Qual é a utilização de placeholders em consultas SQL e qual é o seu papel?

sobes.tech IA

Resposta da IA

Os placeholders em consultas SQL são símbolos ou marcas especiais que são substituídos por valores reais de parâmetros durante a execução da consulta. Em Go (Golang), ao trabalhar com bancos de dados através do pacote database/sql, os placeholders são usados para inserir valores de forma segura nas consultas.

Principais funções dos placeholders:

  • Proteção contra injeções SQL. Em vez de concatenar strings com parâmetros, os valores são passados separadamente, prevenindo a inserção de código malicioso.
  • Melhoria na legibilidade e facilidade do código. As consultas permanecem como modelos, e os parâmetros são passados separadamente.
  • Otimização do trabalho com o banco de dados. Alguns SGBDs podem armazenar em cache os planos de consulta com placeholders.

Em Go, os placeholders geralmente são indicados pelo símbolo ? (por exemplo, para MySQL) ou $1, $2 (por exemplo, para PostgreSQL). Exemplo de uso:

import (
    "database/sql"
    _ "github.com/lib/pq"
)

func getUserByID(db *sql.DB, id int) (*User, error) {
    row := db.QueryRow("SELECT id, name FROM users WHERE id = $1", id)
    var user User
    err := row.Scan(&user.ID, &user.Name)
    if err != nil {
        return nil, err
    }
    return &user, nil
}

Aqui, $1 é um placeholder que será substituído de forma segura pelo valor de id.

Dessa forma, os placeholders garantem segurança e conveniência ao trabalhar com consultas SQL dinâmicas.