【发布时间】:2015-04-22 16:48:35
【问题描述】:
看起来很简单,但我做不到。
浏览domain.com/post/1时,应该显示id行中的数据,哪个值1。
id 行是整数 (int4)。
下面的代码不起作用:
package main
import "fmt"
import "github.com/go-martini/martini"
import "net/http"
import "database/sql"
import _ "github.com/lib/pq"
func SetupDB() *sql.DB {
db, err := sql.Open("postgres", "user=postgres password=apassword dbname=lesson4 sslmode=disable")
PanicIf(err)
return db
}
func PanicIf(err error) {
if err != nil {
panic(err)
}
}
func main() {
m := martini.Classic()
m.Map(SetupDB())
m.Get("/post/:idnumber", func(rw http.ResponseWriter, r *http.Request, db *sql.DB) {
rows, err := db.Query(`SELECT title, author, description FROM books WHERE id = params["idnumber"]`)
PanicIf(err)
defer rows.Close()
var title, author, description string
for rows.Next() {
err:= rows.Scan(&title, &author, &description)
PanicIf(err)
fmt.Fprintf(rw, "Title: %s\nAuthor: %s\nDescription: %s\n\n",
title, author, description)
}
})
m.Run()
}
【问题讨论】:
-
你说不工作是什么意思?是不是在sql中找不到行?
-
我总是让它不工作并给出错误。尝试了各种方式。我只是不知道
-
我忘记了一些关于参数的事情。
标签: sql postgresql go martini