第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

無法連接到 psql 數(shù)據(jù)庫

無法連接到 psql 數(shù)據(jù)庫

Go
慕村9548890 2023-03-15 15:33:46
我正在嘗試連接到數(shù)據(jù)庫,但是當我使用該方法向端點發(fā)出 curl 請求時出現(xiàn)錯誤GET。我仔細檢查了用戶憑據(jù)并授予了完全權(quán)限和超級用戶權(quán)限。以下是卷曲端點時出現(xiàn)的錯誤:santosh@pkg*$:curl -i localhost:8080/books/showHTTP/1.1 303 See OtherContent-Type: text/html; charset=utf-8Location: /booksDate: Sat, 19 Nov 2022 12:09:52 GMTContent-Length: 33<a href="/books">See Other</a>.與數(shù)據(jù)庫建立連接,當向數(shù)據(jù)庫發(fā)出請求時會觸發(fā)這些錯誤:santosh@pkg*$:go run main.go Database connection successful.2022/11/19 17:39:47 http: panic serving 127.0.0.1:44324: runtime error: invalid memory address or nil pointer dereferencegoroutine 35 [running]:net/http.(*conn).serve.func1()        /usr/local/go/src/net/http/server.go:1850 +0xbfpanic({0x6960e0, 0x8e5630})        /usr/local/go/src/runtime/panic.go:890 +0x262database/sql.(*DB).conn(0x0, {0x7593d0, 0xc00011a000}, 0x1)        /usr/local/go/src/database/sql/sql.go:1288 +0x53database/sql.(*DB).query(0x6?, {0x7593d0, 0xc00011a000}, {0x6da967, 0x13}, {0x0, 0x0, 0x0}, 0x68?)主要程序:var db *sql.DBtype Books struct {    Isbn   string    Title  string    Author string    Price  float32}func init() {    var err error    args := fmt.Sprintf("host=%s port=%d dbname=%s user='%s' password=%s sslmode=%s", "localhost", 5432, "bookstore", "santosh", "dts123", "disable")    db, err := sql.Open("postgres", args)    if err != nil {        fmt.Printf("Creating Database %s", err)    }    if err = db.Ping(); err != nil {        panic(err)    }    fmt.Println("Database connection succussful.")}func main() {    http.HandleFunc("/", index)    http.HandleFunc("/books", booksIndex)    http.ListenAndServe(":8080", nil)}func index(w http.ResponseWriter, r *http.Request) {    http.Redirect(w, r, "/books", http.StatusSeeOther)}我嘗試仔細檢查用戶權(quán)限和數(shù)據(jù)庫格式以及順序。一切都符合代碼。連接已建立,但在查詢數(shù)據(jù)庫時因緊急情況而失敗。
查看完整描述

1 回答

?
絕地?zé)o雙

TA貢獻1946條經(jīng)驗 獲得超4個贊

您沒有正確初始化包級db變量。

:=稱為“短變量聲明”的運算符在其塊范圍內(nèi)聲明并初始化一個新變量。在外部作用域中具有相同名稱的任何變量都將被“隱藏”。

要正確初始化包級變量,您可以使用普通賦值:

var db *sql.DB


func init() {

? ? args := fmt.Sprintf("host=%s port=%d dbname=%s user='%s' password=%s sslmode=%s", "localhost", 5432, "bookstore", "santosh", "dts123", "disable")


? ? var err error

? ? db, err = sql.Open("postgres", args)

? ? if err != nil {

? ? ? ? fmt.Printf("Creating Database %s", err)

? ? }

? ? // ...

}

或者您可以使用:=但隨后使用不同的變量名稱并確保將其用于分配:


var db *sql.DB


func init() {

? ? args := fmt.Sprintf("host=%s port=%d dbname=%s user='%s' password=%s sslmode=%s", "localhost", 5432, "bookstore", "santosh", "dts123", "disable")


? ? _db, err := sql.Open("postgres", args)

? ? if err != nil {

? ? ? ? fmt.Printf("Creating Database %s", err)

? ? }

? ? // ...


? ? db = _db // set "global"

}


查看完整回答
反對 回復(fù) 2023-03-15
  • 1 回答
  • 0 關(guān)注
  • 148 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號