Ответ
Плейсхолдеры в SQL-запросах используются для безопасной подстановки параметров, предотвращая SQL-инъекции. Вместо конкатенации строк, значения передаются отдельно от запроса.
Пример с database/sql:
query := "SELECT * FROM users WHERE email = ?"
row := db.QueryRow(query, "user@example.com")
Плюсы:
- Безопасность: экранирование спецсимволов
- Читаемость: запрос остаётся чистым
- Производительность: возможность кеширования плана запроса
В Go плейсхолдеры зависят от драйвера БД (?, $1, :param).