初始化与数据库的连接时,SQLX 中未定义“错误”

我是 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)

}

谢谢你!


白衣非少年
浏览 95回答 1
1回答

开心每一天1111

这是非常基础的 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)  }但是,除了这个语法错误之外,我还可以看到更多问题。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go