問題:如題
本來是第一行的,顯示成第二行之類。
請問如解決?
代碼如下:
package main
import (
"database/sql"
"fmt"
_ "mysqldriver"
)
func main() {
selects()
}
func checkErr(err error) {
if err != nil {
panic(err)
}
}
func selects() {
db, err := sql.Open("mysql", "root:[email protected](127.0.0.1:3306)/jcrm?charset=utf8")
checkErr(err)
// 查詢資料
//查詢資料,取所有字段
rows2, _ := db.Query("SELECT * FROM cd_gentuanyou limit 0,10")
//傳回所有列
cols, _ := rows2.Columns()
//這裡表示一行所有列的值,用[]byte表示
vals := make([][]byte, len(cols))
//這裡表示一行填充資料
scans := make([]interface{}, len(cols))
//這裡scans引用vals,把資料填充到[]byte裡
for k, _ := range vals {
scans[k] = &vals[k]
}
i := 0
result := make(map[int]map[string]string)
for rows2.Next() {
//填充資料
rows2.Scan(scans...)
//每行資料
row := make(map[string]string)
//把vals中的資料複制到row中
for k, v := range vals {
key := cols[k]
fmt.Printf(string(v))
//這裡把[]byte資料轉成string
row[key] = string(v)
}
//放入結果集
result[i] = row
i++
}
//fmt.Println(result)
for k, v := range result {
fmt.Printf("第%d行", k)
fmt.Println(v["gentuanyouid"] + "===>" + v["title"])
}
db.Close()
}