为了账号安全,请及时绑定邮箱和手机立即绑定

Golang RestApi Mysql 插入查询

Golang RestApi Mysql 插入查询

Go
阿波罗的战车 2022-06-13 15:40:12
我是 Golang 的菜鸟,试图创建 RestApi,它从邮递员那里获取请求并将其存储在 MYSQL 中。在尝试插入具有两列(名称和标题)但在插入数据库时一列始终为空的行时,请告诉我如何添加多个字段。func createPost(w http.ResponseWriter, r *http.Request) {    w.Header().Set("Content-Type", "application/json")    stmt, err := db.Prepare("INSERT INTO posts(name,title) VALUES(?,?)")    if err != nil {        panic(err.Error())    }    body, err := ioutil.ReadAll(r.Body)    if err != nil {        panic(err.Error())    }    keyVal := make(map[string]string)    json.Unmarshal(body, &keyVal)    name := keyVal["name"]    title := keyVal["title"]    _, err = stmt.Exec(name, title)    if err != nil {        panic(err.Error())    }}JSON Request :{    "name":"John"    "title":"Engineer"}
查看完整描述

2 回答

?
手掌心

TA贡献1942条经验 获得超3个赞

先检查Unmarshal错误,可能你的要求不对。


如果您正确发布,则您的 JSON 请求缺少逗号:


{

 "name":"John" <<<<<<<< comma here

 "title":"Engineer"

}


查看完整回答
反对 回复 2022-06-13
?
慕码人2483693

TA贡献1860条经验 获得超9个赞

首先使用以下函数转换您收到的 json -


func FromJSON(i interface{}, r io.Reader) error {

    d := json.NewDecoder(r)

    return d.Decode(i)

}

如果仍然有任何问题,那么问题可能在于发送请求时的逗号,如果您使用的是邮递员,则请求应该是 { "name":"John", "title":"Engineer", }


查看完整回答
反对 回复 2022-06-13
  • 2 回答
  • 0 关注
  • 110 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信