У меня есть простой SQL-запрос, вызванный в методе QueryRow, предоставляемый пакетом go/database sql.«Оператор не существует: integer =?» при использовании Postgres с Golang
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 =?'. Но, как говорит му, вполне вероятно, что Go не использует '?' В качестве заполнителя. –