gpt4 book ai didi

sql - Postgres 无法确定 Golang 应用程序中参数 $1 的数据类型

转载 作者:IT王子 更新时间:2023-10-29 01:15:55 25 4
gpt4 key购买 nike

我正在 Golang 中创建一个应用程序,它使用 Postgres 和 pq 驱动程序。我想制作一个可以从我的数据库中选择用户确定的字段的函数,但是我得到一个错误:

pq: could not determine data type of parameter $1

下面是产生这个错误的代码:

var ifc interface{}

if err := conn.QueryRow("SELECT $1 FROM "+db+" WHERE uuid=$3 OR uri=$4 LIMIT 1", field, UUIDOrURI, UUIDOrURI).Scan(&ifc); err != nil {
if err == sql.ErrNoRows {
return http.StatusNotFound
}

log.Println(err)

return http.StatusInternalServerError
}

为什么我不能使用$1 插入我想要SELECT 的字段?还有其他方法吗?

最佳答案

字段名称不能使用占位符。您必须直接构建查询,如:

"SELECT `" + field + "` FROM "

为避免 SQL 注入(inject),请确保该字段事先是允许字段列表的一部分。

关于sql - Postgres 无法确定 Golang 应用程序中参数 $1 的数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39871267/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com