在 Golang 中使用可变参数连接数组接口
在尝试使用 Gorm 执行批量插入时,由于以下原因遇到了错误列数与提供的值不匹配。此问题源于使用数组接口时查询格式不正确。
解决方案:
要解决此问题,您需要使用“...”将切片的元素传递给带有可变参数的函数时的运算符。这将指示编译器单独传递每个元素,而不是将切片值作为单个参数传递。
tx.Exec(sqlStr, vals...)
说明:
Tx.Exec()函数具有签名 func (tx *Tx) Exec(query string, args ...interface{}) (Result, error)。这意味着您可以传递可变数量的参数作为第二个参数,指定为 args。通过使用“...”运算符,您可以告诉编译器将 vals 切片展开为各个参数。
这将导致执行以下查询:
INSERT INTO city(code, name) VALUES ('XX1', 'Jakarta'),('XX2', 'Bandung')
以上是如何在 Go 中正确使用 Gorm 的 `Exec` 的可变参数进行批量插入?的详细内容。更多信息请关注PHP中文网其他相关文章!