Golang sql命名参数查询

时间:2017-10-08 06:14:21

标签: mysql go

我正在尝试在golang中使用命名参数查询,如下所示:

stmt, err := db.Prepare("insert into users(name, email) values(@name, @email)")
if err != nil {
    //error handling
}

res, err := stmt.Exec(sql.Named("name", name), sql.Named("email", email))

if err != nil {
        //error: sql: expected 0 arguments, got 2 
}

我收到以下错误:“sql:期望0个参数,得到2”。

编写此查询的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

Go需要支持各种SQL服务器 - 并非所有SQL服务器都支持命名参数。支持他们的服务器通过各种怪癖和“陷阱”来做到这一点。但他们都支持位置参数。

然而,mysql驱动程序有一个未解决的问题: https://github.com/go-sql-driver/mysql/issues/561