1. mysql 连接函数
import (
"database/sql"
_ "github.com/go-sql-driver/mysql"
)
func NewMysqlConn(db *sql.DB, err error) {
db, err = sql.Open("mysql", "root:123456@tcp(127.0.0.1:3306)/test?charset=utf8")
return
}
2. mysql查询单条(将 sql.Rows 转化为 map )
func GetResultRow(rows *sql.Rows) map[string]string{
columns, _ := rows.Columns()
scanArgs := make([]interface{}, len(columns))
values := make([]interface{}, len(columns))
for i := range values {
scanArgs[i] = &values[i]
}
record := make(map[string]string)
for rows.Next() {
rows.Scan(scanArgs...)
for i, v := range values {
if v != nil {
record[columns[i]] = string(v.([]byte))
}
}
}
return record
}
3.获取多条记录(将 sql.Rows 转化为 map[int]map[string]string)
func GetResultRows(rows *sql.Rows) map[int]map[string]string {
columns, _ := rows.Columns()
vals := make([][]byte, len(columns))
scans := make([]interface{}, len(columns))
for k, _ := range vals {
scan[k] = &val[k]
}
i := 0
result := make(map[int]map[string]string)
for row.Next() {
rows.scan(scans...)
row := make(map[string]string)
for k, v := range vals {
key := columns[k]
row[key] = string(v)
}
result[i] = row
i++
}
return result
}