sql - 单值上下文中的多值 .Exec() 与 Golang sql

标签 sql sqlite go

我正在尝试使用 golang 和标准 sql 驱动程序更新 SQLite3 数据库中单行中的多个值,但在调试以下错误时遇到问题:

 command-line-arguments
./server.go:169: multiple-value updateStatement.Exec() in single-value context

相关代码如下(无关代码已省略):

SQL语句:

const (
    rsvpSubmit = "UPDATE rsvp SET Name = ?, Rsvp = ?, Guests = ?, Meal0 = ?, Meal1 = ?, Comments = ?, ModifiedAt = ? WHERE email = ?"
)

var (
    updateStatement *sql.Stmt
)

errr := updateStatement.Exec(
    r.FormValue("name"),
    r.FormValue("rsvp"),
    r.FormValue("guests"),
    r.FormValue("meal0"),
    r.FormValue("meal1"),
    r.FormValue("comments"),
    time.Now(),
    cookie.Value)

数据库有以下列(结构复制):

    type User struct {
        Id         int
        Email      string
        Name       sql.NullString
        Rsvp       sql.NullInt64
        Guests     sql.NullInt64
        Meal0      sql.NullString
        Meal1      sql.NullString
        Comments   sql.NullString
        ModifiedAt sql.NullString
    }

非常感谢任何帮助!

最佳答案

Stmt.Exec定义为:

func (s *Stmt) Exec(args ...interface{}) (Result, error)

如果你不关心结果那么你可以使用_, err := updateStatement.Exec(...)

关于sql - 单值上下文中的多值 .Exec() 与 Golang sql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26182802/

相关文章:

sql - 为许多参数执行 SAS 宏

mysql - 在 MySQL 中执行关系代数除法的 SQL 查询时出错

sql - SQLite 多列主键是否需要额外的索引?

go - 使用其他 bool 值进行switch语句

go - 如何从 map 中获取值

c# - 在 ASP.Net 应用程序中安全地存储(加密)数据

SQL:获取一列的最大值和对应的其他列

java - 如何合并 SQLite 和 PostgreSQL 中的两个不同表?

sql - 检查约束失败

go - 等待所有例程完成