Go 中的等效 SQL 查询串联
在 Python 中,使用 % 运算符可以直接连接 SQL 查询中的字符串和值。但是,在 Go 中,此方法可能无法按预期工作。
要解决此问题,Go 程序员可以使用 fmt.Sprintf 函数。以下代码示例演示了连接字符串和值的正确方法:
<code class="go">query := fmt.Sprintf(`SELECT columnA FROM tableA WHERE columnB = %d AND columnB = %s`, SomeNumber, SomeString)</code>
此方法可确保正确格式化和处理值。此外,在查询中嵌入用户提供的数据时,注意注入攻击的潜在漏洞也至关重要。为了减轻这种风险,请考虑使用以下方法:
<code class="go">query := `SELECT column_name FROM table_name WHERE column1_name = %d AND column2_name = %d` rows, err := db.Query(query, Val1, Val2)</code>
通过对查询和值使用单独的参数,您可以防止恶意输入更改查询的结构或意图。
以上是如何在 Go 中连接 SQL 查询中的字符串和值?的详细内容。更多信息请关注PHP中文网其他相关文章!