gpt4 book ai didi

postgresql - 无法从 db.QueryRow() 推断出错误

转载 作者:行者123 更新时间:2023-11-29 14:25:58 24 4
gpt4 key购买 nike

我正在尝试实现一个简单的 POST API 以在 Postgres 数据库中插入数据,如下所示:

http://123.123.10.10/checkin?userid=clive&token=1234jhhasdbn

package main

import (
"database/sql"
"encoding/json"
"fmt"
"log"
"net/http"
"time"

"github.com/gorilla/mux"
_ "github.com/lib/pq"
)

const (
host = "localhost"
port = 2019
user = "postgres"
password = "dbadmin"
dbname = "oc-indo-dev"
)


type Response struct {
Status int `json:"status"`
Message string `json:"message"`
Token string `json:"token"`
}

func main() {
router := mux.NewRouter()
router.HandleFunc("/checkin", checkin).Methods("POST")
http.Handle("/", router)
fmt.Println("Connected to port 1234")
log.Fatal(http.ListenAndServe(":1234", router))
}

func DBconnect() *sql.DB {
psqlInfo := fmt.Sprintf("host=%s port=%d user=%s "+
"password=%s dbname=%s sslmode=disable",
host, port, user, password, dbname)
db, err := sql.Open("postgres", psqlInfo)

if err != nil {
log.Fatal(err)
}

return db
}

func checkin(w http.ResponseWriter, r *http.Request) {
var response Response
var tmpToken string

r.ParseForm()
userId := r.Form.Get("userid")
userToken := r.Form.Get("token")

db := DBconnect()
defer db.Close()

query := `INSERT INTO oc_token (userid, time, token) VALUES ($1, $2, $3) RETURNING token`
err = db.QueryRow(query, userId, time.Now(), userToken).Scan(&tmpToken)

if (err != nil){
response.Status = 500
response.Message = "Invalid checkin"
response.Token = ""
} else {
response.Status = 200
response.Message = "Succesfully checkedin"
response.Token = tmpToken
}

w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(response)

}

Go 编译器(我使用的是 v1.13)提示:

.\checkin.go:63:2: undefined: err

.\checkin.go:65:6: undefined: err

如何解决这个问题?

最佳答案

在 checkin 时,您没有声明 err 变量。

使用:

var err error

或 := 简写

err := db.QueryRow(query, userId, time.Now(), userToken).Scan(&tmpToken)

关于postgresql - 无法从 db.QueryRow() 推断出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57969889/

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