Golang:向sql查询传递参数

问题描述 投票:0回答:1

Golang 中使用 database/sql 包:当这些参数对于封闭函数来说也是“args ...any”时,如何将可变数量的参数传递给 SQL 查询?

所以查询函数有这样的格式

rows, err = db.query(statement string, args ...any) 

但它是在另一个函数中执行的,并且(除其他外)语句和参数本身都是该函数的参数。

因此只显示重要的部分:

func SomeFunc({other parms not relevant to the query}, db *sql.DB, statement string, args ...any) {
. . . 
   rows, err = db.query(statement, args)
. . . 
}

但是失败了,因为现在传递给 SomeFunc 的参数已变成

[]interface{}
,因此我收到 SQL 错误:

converting argument $1 type: unsupported type []interface {}, a slice of interface

我错过了什么吗? 如何将可变数量的参数传递给函数,然后将其传递给 db.query 函数?

sql go
1个回答
0
投票

database/sql包的

query()
函数接受interface{}
any
类型的
可变参数
,也就是说它接受
interface{}
的可变个数。要解压
[]interface{}
,请使用
...
,例如:

rows, err = db.query(statement, args...)
© www.soinside.com 2019 - 2024. All rights reserved.