dqzg62440 2014-01-12 10:36
浏览 143
已采纳

Golang PQ:执行SQL时语法错误

Using revel, golang 1.1.2, gorp, postgres 9.3.2 on heroku

Following robfig's List booking example

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)
}

Not sure why I'm getting pq: syntax error at or near "limit". I'm assuming the combined query is wrong. Why does the query not end up being something like select * from posts offset 0 limit 10, which I've tested to run on postgres. Where am I messing up?

  • 写回答

1条回答 默认 最新

  • dongzhou5344 2014-01-12 10:48
    关注

    I'm not familiar with postgres, but I found this issue. I think you should use it like in the godoc

    Example in godoc

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

    (Replace "?" with "$n")

    Your code

    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)
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥100 求数学坐标画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站