为了账号安全,请及时绑定邮箱和手机立即绑定

当执行mysql更新sql语句时,如何在go中同时绑定多变量和切片变量?

当执行mysql更新sql语句时,如何在go中同时绑定多变量和切片变量?

Go
杨__羊羊 2023-07-26 19:54:18
corresponding parameter is non-variadic我有一些字符串变量和一个切片变量作为 golang 中的 SQL 参数,但是当我尝试执行时返回错误。那么在这种情况下我该如何绑定这些变量呢?mysql 连接器:go-sql-driver/mysql假代码:func UpdateTblNm (foo, baz string, bar int, pars []string) error {    stmt:= `update tbl_nm set foo=?, bar=? where baz=? and par in (?`+ strings.Repeat(", ?", len(pars)-1) + `)`    if _, err := tx.Exec(stmt, foo, bar, baz, pars...); err!=nil {        return err    }    ... ...}我是 gopher 的新人..希望你的帮助,谢谢
查看完整描述

1 回答

?
慕标5832272

TA贡献1966条经验 获得超4个赞

由于您有固定数量的参数和一个可变参数,因此您必须将它们全部收集到一个数组中,然后传递它们,因为 go 可变参数无法处理您想要执行的操作:


args:=[]interface{}{foo,baz,bar}

for _,x:=range pars {

  args=append(args,x)

}

tx.Exec(stmt,args...)


查看完整回答
反对 回复 2023-07-26
  • 1 回答
  • 0 关注
  • 85 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信