1

在 Go 应用程序中,使用sqlx包和 mysql 数据库,我想更新表user并将其posts字段增加 1:

err = shared.Dbmap.Exec("UPDATE user SET posts=posts+1 WHERE id=?", userId)
if err != nil {
    log.Println(err)
    return
}

但是在编译时我得到:

单值上下文中的多值 shared.Dbmap.DB.Exec()

我查看了文档,但看不到相关示例。

我该如何解决?

4

1 回答 1

2

这是阅读消息的方法multiple-value shared.Dbmap.DB.Exec() in single-value context

  • shared.Dbmap.DB.Exec()有多个值
  • 您正在尝试在单值上下文中使用它

在您的代码中,您有err = shared.Dbmap.Exec(...).

赋值的左边有一个值,右边有多个。

查看docs,该Exec(...)函数返回 2 个值,但您将其分配给一个值。

像这样写:

_, err = shared.Dbmap.Exec("UPDATE user SET posts=posts+1 WHERE id=?", userId)
于 2017-11-19T08:44:49.737 回答