9

使用revel, golang 1.1.2, gorp, postgres 9.3.2onheroku

以下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 上运行。我在哪里搞砸了?

4

1 回答 1

20

我不熟悉 postgres,但我发现了这个问题。我认为您应该像在godoc中一样使用它

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)
}
于 2014-01-12T10:48:31.053 回答