golang pass在args(一段字符串)中表示为;args。。。接口{}";
这是我的代码:golang pass在args(一段字符串)中表示为;args。。。接口{}";,go,Go,这是我的代码: package main import ( "database/sql" ) func main() { table := "some table" args := []interface{}{"string1", "string2", "string3", "string4"} _, err := db.Exec( "INSERT INTO" + table + "VALUES('', ?, ?, ?, ?)", args)
package main
import (
"database/sql"
)
func main() {
table := "some table"
args := []interface{}{"string1", "string2", "string3", "string4"}
_, err := db.Exec( "INSERT INTO" + table + "VALUES('', ?, ?, ?, ?)", args)
if err != nil {
return err
}
}
我想传入args,但无法将其格式化为“args…interface{}”
电流输出为:
package main
import (
"database/sql"
)
func main() {
table := "some table"
args := []interface{}{"string1", "string2", "string3", "string4"}
_, err := db.Exec( "INSERT INTO" + table + "VALUES('', ?, ?, ?, ?)", args)
if err != nil {
return err
}
}
sql:转换Exec参数#0的类型:不支持的类型[]接口{},一个切片
提前谢谢 在
db.Exec
调用中,使用args…
而不是args
使用…
操作符来扩展args切片。这不起作用,我仍然会收到相同的错误:sql:转换Exec参数#0的类型:不支持的类型[]接口{},切片请发布一个最小的、可验证的示例,以便我们可以帮助您。由于该示例运行良好,并且只有db.Exec引起了问题,因此我决定使用不同的方法,感谢您的时间和努力:)@Andy Schweig解决了问题。您提供的示例与您所想的不同,您传递给insert函数的参数仅被视为一个元素,因为它没有展开。