【发布时间】:2023-03-15 15:34:02
【问题描述】:
我在 go 的 database/sql 包提供的 QueryRow 方法中调用了一个简单的 SQL 查询。
import (
"github.com/codegangsta/martini"
"github.com/martini-contrib/render"
"net/http"
"database/sql"
"fmt"
_ "github.com/lib/pq")
)
type User struct {
Name string
}
func Show(db *sql.DB, params martini.Params) {
id := params["id"]
row := db.QueryRow(
"SELECT name FROM users WHERE id=?", id)
u := User{}
err := row.Scan(&u.Name)
fmt.Println(err)
}
但是,我收到错误 pq: operator does not exist: integer =? 看起来代码不明白 ? 只是一个占位符。我该如何解决这个问题?
【问题讨论】:
-
您收到该特定错误的原因是
=?将是一个有效的 PostgreSQL 运算符名称。使用id = ?。但正如 mu 所说,Go 也可能不使用?作为占位符。
标签: sql postgresql go pq