err = rows.Scan(&user.Id,&user.Name)
if err != nil {
fmt.Println(err)
}
fmt.Println("content:", user)
查询时出错:
sql: expected 21 destination arguments in Scan, not 2
出现原因:
数据库不只两个字段,而你只获取2个字段,所以报错
解决方法1:
err = rows.Scan(&user.Id,&user.Name,&user.......)全部获取出来
解决方案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("========================") // // }
有疑问加站长微信联系(非本文作者)