我想从我的go应用程序中执行以下查询
SELECT hour, count
FROM location_counts
WHERE distance(point, 'POINT(-80.205 26.14)') <= 100
我将传递POINT(-80.205 26.14)
和100
值,我不确定如何以安全的方式包含POINT...
参数。当我尝试将其传递给以下参数时:
rows, err := g.DB.Query(
"select hour, count from location_counts where distance(point, '?') <= ?",
"POINT(-80.205 26.14)",
100,
)
它引发错误:
sqlactionException [sqlparseexception:不能施放'点(-80.205) 26.14)'键入double]
如果我将值直接放入字符串中,但我会为SQL注入漏洞开放。
我如何在查询中安全地包含 POINT...
值?
删除占位符问号的周围行情应该修复它,例如:
rows, err := g.DB.Query(
"select hour, count from location_counts where distance(point, ?) <= ?",
"POINT(-80.205 26.14)",
100,
)
永远不要引用占位符,因为他们将直接被键入参数替换。