
go 中 db.queryrow(sql).scan 如何将结果集映射到 map
问题:如何在 db.queryrow(sql).scan 中将结果集扫描到一个 map 中?
解答:
在 scan 之前,需要先初始化 map 提供内存地址。
示例代码:
func selectOne(id int) {
// 初始化 map
res := map[string]*interface{}{"id": nil, "name": nil, "password": nil, "add_time": nil}
fmt.Println(res)
sql := "select * from test where id = ?"
err := db.QueryRow(sql, id).Scan(res["id"], res["name"], res["password"], res["add_time"])
if err != nil {
fmt.Println("获取数据失败:", err.Error())
} else {
fmt.Println(res)
}
}










