在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()
我看了the docs,看不到相关的例子。
我该如何解决?
答案 0 :(得分: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)