Golang pq: синтаксическая ошибка при выполнении sql

С помощью revel, golang 1.1.2, gorp, postgres 9.3.2 на heroku

Следующий robfig Пример бронирования списка

func (c App) ViewPosts(page int) revel.Result {
    if page == 0 {
        page = 1
    }
    var posts []*models.Post
    size := 10
    posts = loadPosts(c.Txn.Select(models.Post{},
        `select * from posts offset ? limit ?`, (page-1)*size, size)) // error here
    return c.RenderJson(posts)
}

Не уверен, почему я получаю pq: syntax error at or near "limit", Я предполагаю, что комбинированный запрос неверен. Почему запрос не заканчивается select * from posts offset 0 limit 10, который я тестировал для запуска на postgres. Где я все испортил?

1 ответ

Решение

Я не знаком с Postgres, но я нашел эту проблему. Я думаю, что вы должны использовать его, как в Godoc

Пример в Годоке

age := 21
rows, err := db.Query("SELECT name FROM users WHERE age = $1", age)

(Заменить "?" На "$n")

Ваш код

func (c App) ViewPosts(page int) revel.Result {
if page == 0 {
    page = 1
}
var posts []*models.Post
size := 10
posts = loadPosts(c.Txn.Select(models.Post{},
    `select * from posts offset $1 limit $2`, (page-1)*size, size))
return c.RenderJson(posts)
}
Другие вопросы по тегам