【问题标题】:select query using in go language- MYSQL使用 go 语言选择查询 - MYSQL
【发布时间】:2021-07-16 01:48:31
【问题描述】:

我正在尝试使用 go 语言获取完整的表格详细信息,但没有得到

func GetallUserHandler(c *gin.Context) {

    // fetch data
    userdata, selectErr := views.GetallUser()
    if selectErr != nil {
        c.JSON(http.StatusInternalServerError, fmt.Sprintf("Something wrong on our server"))
        database.Dberror(selectErr)
    } else {
        c.JSON(http.StatusOK, userdata)
    }
}



func GetallUser() error {
    db := database.DbConnection()
    defer db.Close()
    query := "Select * from user;"
    rows, queryErr := db.Query(query)
    database.Dberror(queryErr)

    defer rows.Close()
    for rows.Next() {
        user := models.User{}
        queryErr = rows.Scan(&user.Id, &user.Username, &user.Password, &user.Firstname)
    }
    queryErr = rows.Err()
    database.Dberror(queryErr)

}

在 GetallUser() 函数中,我卡在这里了。

如何返回所有表格的详细信息?

请帮忙

【问题讨论】:

  • GetallUser() 当前只返回一个错误,但您试图读取用户数据以及错误?我根据您的代码假设您需要返回一段 model.User 以及一个错误。您应该创建一个切片 users := model.User{} 并将您在 for 循环中读取的每个用户附加到该切片。您还需要一个 return 语句返回这部分用户和一个错误(如果有)。
  • @HarilSatra 感谢您的重播。获取数据后,我不明白如何将所有表数据转换为一个 json 数据

标签: go go-gin go-modules go-packages


【解决方案1】:

我得到了答案

func GetallUser() ([]models.User, error) {
    db := database.DbConnection()
    defer db.Close()
    query := "Select * from user;"
    rows, queryErr := db.Query(query)
    database.Dberror(queryErr)

    defer rows.Close()
    var userrslt []models.User
    for rows.Next() {
        user := models.User{}
        rows.Scan(&user.Id, &user.Username, &user.Password, &user.Firstname)
        userrslt = append(userrslt, user)
    }
    queryErr = rows.Err()
    database.Dberror(queryErr)

    return userrslt, queryErr

}

【讨论】:

    猜你喜欢
    • 2016-06-05
    • 2013-09-04
    • 2012-04-13
    • 2011-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多