我用的github.com/go-sql-driver/mysql这个驱动,我像下面这样写没有报错,但是里面的数据为空或者0

type data struct {

id int

name string

weight int

}

rows, _ := db.Query("select * from test where id = ?", 2)

for rows.Next() {

line := data{}

err = rows.Scan(&line)

log.Println(line)

}

运行结果

2017/07/17 13:37:50 {0 0}

存到map的代码

rows, _ := db.Query("select * from test where id = ?", 2)

columns, _ := rows.Columns()

length := len(columns)

for rows.Next() {

value := make([]interface{}, length)

columnPointers := make([]interface{}, length)

for i:=0;i

columnPointers[i] = &value[i]

}

rows.Scan(columnPointers...)

data := make(map[string]interface{})

for i:=0;i

columnName := columns[i]

columnValue := columnPointers[i].(*interface{})

data[columnName] = *columnValue

}

log.Print(data)

}

有效果,但是看不懂为何要这样写