使用 mysql 驱动程序在 golang 中使用参数执行查询时出错

我创建了一个在mysql数据库上执行查询的func。我使用此包“github.com/go-sql-driver/mysql”


但是如果我运行这个:


...

err := database.ExecuteSql("INSERT INTO xxx(field1, field2, field3) VALUES(?, ?, ?)", "field1", 123, time.Now())

...

func ExecuteSql(cmd string, , args ...interface{}) error {

  ctx := context.Background()

  _, err := db.ExecContext(ctx, cmd, args)

  ctx.Done()

  ...

}

它返回我“sql:转换参数$1类型:不受支持的类型[]接口{},接口的切片”


慕姐8265434
浏览 110回答 1
1回答

绝地无双

当您像这样执行该方法时:_, err := db.ExecContext(ctx, cmd, args)您只作为一个参数传递。不支持将切片作为方法的参数,除非其 .args[]interface{}ExecContext[]byte您需要将解包运算符与 :args_, err := db.ExecContext(ctx, cmd, args...)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go