Зачем нужны placeholder в запросах

«Зачем нужны placeholder в запросах» — вопрос из категории Базы данных, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Плейсхолдеры в SQL-запросах используются для безопасной подстановки параметров, предотвращая SQL-инъекции. Вместо конкатенации строк, значения передаются отдельно от запроса.

Пример с database/sql:

query := "SELECT * FROM users WHERE email = ?"
row := db.QueryRow(query, "user@example.com")

Плюсы:

  • Безопасность: экранирование спецсимволов
  • Читаемость: запрос остаётся чистым
  • Производительность: возможность кеширования плана запроса

В Go плейсхолдеры зависят от драйвера БД (?, $1, :param).