incatenating text и values в go sql Queries
при конструкции текста SQL -запроса в Go существуют определенные правила синтаксиса, при которых соблюдение строки и значения, особенно при использовании integers. Подход к кортежу не является действительным в Go, и попытка отменять параметры в качестве строк приведет к ошибкам несоответствия типа.
идиоматическое способ выполнить это в Go - использовать fmt.sprintf для форматирования строки запроса. Это позволяет вам встраивать значения в строку во время выполнения:
Query: = fmt.sprintf (`select columna из таблицы, где columnb = %d и columnb = %s`, Somenumber, Somestring)
query := fmt.Sprintf(`SELECT columnA FROM tableA WHERE columnB = %d AND columnB = %s`,
someNumber, someString)
]
строки, err: = db.query (Query, val1, val2)rows, err := db.Query(query, val1, val2)
Избегание SQL -инъекции
крайне важно отметить, что конкатенация строки в запросах SQL может привести к уязвимости инъекции. Чтобы смягчить этот риск, используйте подготовленные операторы и параметризованные запросы. Передача значений в виде параметров, вы можете предотвратить вредоносный ввод от изменения предполагаемого SQL -запроса.
, например:
stmt, err: = db.prepare (`select columna из таблицы, где Columnb =? И Columnb =?) Rows, err: = stmt.query (val1, val2)
], используя подготовленные операторы, вы можете защитить свое приложение от вредоносного ввода SQL при сохранении удобства построения динамических запросов. ]
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3