gpt4 book ai didi

sql - 如何在 SQL 查询中将 URI 作为字符串附加

转载 作者:数据小太阳 更新时间:2023-10-29 03:33:28 26 4
gpt4 key购买 nike

看起来很简单,但我做不到。当浏览 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()
}

最佳答案

部分问题是您使用字符串 params["idnumber"] 作为 SQL 查询的一部分

db.Query(`SELECT title, author, description FROM books WHERE id = params["idnumber"]`)

这将查找 id 等于 params["idnumber"] 字符串的书。

您需要做的是根据 http://golang.org/pkg/database/sql/#DB.Query 使用占位符和参数

在这种情况下,您的查询应该是

db.Query("SELECT title, author, description FROM books WHERE id=$1", params["idnumber"]) 

这应该可以解决我认为您遇到的问题。但是,在您实际使用您遇到的实际问题更新您的问题之前,我不会知道。

更新

undefined: params 出现的错误是因为范围内没有 params 对象。

我建议阅读马提尼如何在消除争论方面发挥作用。 https://github.com/go-martini/martini#routing

关于sql - 如何在 SQL 查询中将 URI 作为字符串附加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29804035/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com