亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

初始化與數據庫的連接時,SQLX 中未定義“錯誤”

初始化與數據庫的連接時,SQLX 中未定義“錯誤”

Go
白衣非少年 2023-07-26 17:36:52
我是 Go 語言的新手,嘗試連接到服務器并在 API 調用時創建數據庫。但我在 處收到“未定義:錯誤” sqlx.Connect。最初我認為這是因為我沒有定義db *sqlx.DB. 但它仍然出現錯誤db, err = sqlx.Connect("mysql", connection)。是否有必要定義a var err?func (setupController *SetupController) Setup(w http.ResponseWriter, r *http.Request) {    var db *sqlx.DB    var connection string    response := new(Response)    response.Host = r.FormValue("host")    response.Port = r.FormValue("port")    response.Dbuser = r.FormValue("dbuser")    response.Dbpassword = r.FormValue("dbpassword")    response.Dbname = r.FormValue("dbname")    response.Username = r.FormValue("username")    response.Password = r.FormValue("password")    connection = response.Dbuser + ":" + response.Dbpassword + "@tcp(" + response.Host + ":" + response.Port + ")/" + response.Dbname    db, err = sqlx.Connect("mysql", connection)    userJson, err := json.Marshal(response)    if err != nil {        panic(err)    }    w.Header().Set("Content-Type", "application/json")    w.WriteHeader(http.StatusOK)    w.Write(userJson)}謝謝你!
查看完整描述

1 回答

?
開心每一天1111

TA貢獻1836條經驗 獲得超13個贊

這是非?;A的 Go。你應該去參觀一下。特別是看看https://tour.golang.org/basics/10。并不是說在 Go 中你必須注意=和之間的細微差別:=。


但簡而言之,您err在聲明之前就使用了它。您可以先聲明它:


  var err error

或使用簡短的聲明


  db, err := sqlx.Connect("mysql", connection)

也許最簡單的方法是將以下行(確實進行簡短聲明)移到它之前,否則在聲明兩次時您會收到另一個錯誤。您可能還應該檢查錯誤。


  userJson, err := json.Marshal(response)

  if err != nil {

    panic(err)

  }

  db, err = sqlx.Connect("mysql", connection)

  if err != nil {

    panic(err)

  }

但是,除了這個語法錯誤之外,我還可以看到更多問題。


查看完整回答
反對 回復 2023-07-26
  • 1 回答
  • 0 關注
  • 136 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號