golang查询数据后,获取内容出错问题
发布时间:2020-12-16 18:46:46 所属栏目:大数据 来源:网络整理
导读:span style="font-family: Arial,Helvetica,sans-serif; background-color: rgb(255,255,255);"err = rows.Scan(user.Id,user.Name)/span if err != nil { fmt.Println(err) } fmt.Println("content:",user) 查询时出错: sql: expected 21 destination argu
<span style="font-family: Arial,Helvetica,sans-serif; background-color: rgb(255,255,255);">err = rows.Scan(&user.Id,&user.Name)</span> if err != nil { 查询时出错: sql: expected 21 destination arguments in Scan,not 2 出现原因: 数据库不只两个字段,而你只获取2个字段,所以报错 解决方法1: <span style="font-family: Arial,&user.Name,&user.......)全部获取出来</span> 解决方案2: rows,err := db.Query(data) //fmt.Println(db) if err != nil { log.Fatalln(err) } //字段 cols,_ := rows.Columns() for i := range cols { fmt.Print(cols[i]) fmt.Print("t") } // fmt.Println("") // fmt.Println("=================================") // values := make([]sql.RawBytes,len(cols)) // scans := make([]interface{},len(cols)) // // for i := range values { // // scans[i] = &values[i] // // } // // results := make(map[int]map[string]string) // // i := 0 // // for rows.Next() { // // if err := rows.Scan(scans...); err != nil { // // fmt.Println("Error") // // return // // } // // row := make(map[string]string) // // for j,v := range values { // // key := cols[j] // // row[key] = string(v) // // } // // results[i] = row // // i++ // // } // // // 打印结果 // // for i,m := range results { // // fmt.Println(i) // // for k,v := range m { // // fmt.Println(k," : ",v) // // } // // fmt.Println("========================") // // } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |