package main
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
)
func main() {
db, err := sql.Open("mysql", "root:@tcp(localhost:3306)/go?charset=utf8")
if err != nil {
fmt.Println("连接数据库失败", err.Error())
return
}
defer db.Close()
query, err := db.Query("select * from go_user")
if err != nil {
fmt.Println("查询数据库失败", err.Error())
return
}
defer query.Close()
cols, _ := query.Columns()
values := make([][]byte, 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 query.Next() {
if err := query.Scan(scans...); err != nil {
fmt.Println(err)
return
}
row := make(map[string]string)
for k, v := range values {
key := cols[k]
row[key] = string(v)
}
results[i] = row
i++
}
for k, v := range results {
fmt.Println(k, v)
}
db.Close()
}
原文链接:go-sql-driver包 实现mysql不定字段查询