Postgres中的Golang包装查询执行

时间:2018-07-23 20:49:36

标签: sql postgresql go

我正在使用以下代码在为学习Go而构建的API中将查询的执行包装在postgres数据库上。

UISegmentedControl

我的问题是,根据文档,db.Query()方法接受查询strgin,否则接受... interface {}参数。尝试添加第二个参数 params ... interface {}传递给我的函数参数,并将params作为第二个参数传递给DB.Query方法,但这不起作用。仅当我专门从接口切片中拉出参数时,它才似乎有效。 有什么建议吗?

2 个答案:

答案 0 :(得分:2)

我通过查找SQL模块的源代码并查看它是如何在db.Query()方法中实现的来解决的。 您将省略号添加到slice参数的末尾以通过它。就像参数...

答案 1 :(得分:1)

This可能会帮助您

  

可变参数函数可以按通常的方式使用单个参数来调用。   如果切片中已经有多个arg,请使用func(slice...)

将其应用于可变参数

如果要从切片发送data,只需添加省略号:

rows, err := db.Query(qstring, data...)
if err != nil {
   log.Fatal(err)
}

如果您将值分成不同的变量:

rows, err := db.Query(qstring, val1, val2, val3, valN)
if err != nil {
   log.Fatal(err)
}