golang查询数据后,获取内容出错问题

来源:互联网 发布:飞利浦淘宝授权店 编辑:程序博客网 时间:2024/06/07 07:50

<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 arguments in Scan, not 2

出现原因:

数据库不只两个字段,而你只获取2个字段,所以报错

解决方法1:

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">err = rows.Scan(&user.Id,&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("========================")////}


0 0
原创粉丝点击