За да отговорите на въпроса си как да форматирате низа, простият отговор е да използвате fmt.Sprintf за да структурирате низа си. Въпреки това вижте по-долу за бърза бележка относно използването на fmt.Sprintf за db заявки:
Пример:
query := fmt.Sprintf("SELECT id FROM users WHERE login='%s'", login)
err = db.Query(query)
// Equivalent to:
rows, err := db.Query("SELECT id FROM users WHERE login=?", login)
Използвайки това за заявки, вие сте в безопасност от инжекции. Като се има предвид това, може да се изкушите да промените това и да използвате db.Exec и за създаване/актуализации/изтриване. Като общо правило, ако използвате db.Exec с fmt.Sprintf и не дезинфекцирате своите входове първо, вие се отваряте за sql инжекции .
GoPlay с прост пример защо fmt.Sprintf с db.Exec е лош:
https://play.golang.org/p/-IWyymAg_Q
Трябва да използвате db.Query или db.Prepare по подходящ начин за избягване на тези видове вектори на атака. Може да се наложи да модифицирате примерния код по-горе, за да излезете с безопасен за инжектиране фрагмент, но се надявам, че ви дадох достатъчно, за да започнете.