{已修复} Golang RESTAPI 返回错误数据

当我使用调试器时,metricId返回具有所有值的度量对象0 or null(与输出相同)。


我在这里做错了什么?


The Database connection works.


func GetMetricById(c *gin.Context) {

    metricId := c.Param("id")


    conn := config.DatabaseConnect()


    var obj models.Metric


    rows := conn.QueryRow("SELECT * FROM Metric WHERE id = ?", metricId)


    err := rows.Scan(&obj.Id, &obj.Sms, &obj.Absence, &obj.Pregnant, &obj.Uwv_notifications, &obj.Wia_dossiers_started, &obj.Employees, &obj.Data_id, &obj.Date, &obj.Type)


    if err != nil {

        fmt.Println(err.Error())

    }


    fmt.Println(obj, "Metric Object that is called.")


    c.JSON(http.StatusOK, obj)

}

输出:


{

    "Id": 0,

    "Sms": 0,

    "Absence": 0,

    "Pregnant": 0,

    "Uwv_notifications": 0,

    "Wia_dossiers_started": 0,

    "Employees": 0,

    "Data_id": 0,

    "Date": "",

    "Type": 0

}


叮当猫咪
浏览 76回答 2
2回答

元芳怎么了

func GetMetricsByDataId(c *gin.Context) {    queryParams := c.Request.URL.Query()        conn := config.DatabaseConnect()    var metrObject []models.Metric    rows, _ := conn.Query("SELECT * FROM Metric WHERE data_id = ?", queryParams.Get("data_id"))    defer rows.Next()    for rows.Next() {        var obj models.Metric        if err := rows.Scan(&obj.Id, &obj.Sms, &obj.Absence, &obj.Pregnant, &obj.Uwv_notifications, &obj.Wia_dossiers_started, &obj.Employees, &obj.Data_id, &obj.Date, &obj.Type); err != nil {            _ = fmt.Errorf(err.Error())        }        metrObject = append(metrObject, obj)    }    if err := rows.Err(); err != nil {        _ = fmt.Errorf(err.Error())    }    c.JSON(http.StatusOK, metrObject)}像这样它有效localhost:8082/billing/getmetricbydataid?data_id=150295通过此 API 调用

浮云间

我认为解决方案可能是使用metricId := c.Params.ByName("id")而不是metricId := c.Param("id")
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go