Golang은 맵 [string] 인터페이스 {}에서 Rows를 읽습니다.

4076 단어 go

기사 목록

func DoQuery(db *sql.DB, sqlInfo string, args ...interface{}) ([]map[string]interface{}, error) {
	rows, err := db.Query(sqlInfo, args...)
	if err != nil {
		return nil, err
	}
	columns, _ := rows.Columns()
	columnLength := len(columns)
	cache := make([]interface{}, columnLength) 
	for index, _ := range cache { 
		var a interface{}
		cache[index] = &a
	}
	var list []map[string]interface{} 
	for rows.Next() {
		_ = rows.Scan(cache...)
 
		item := make(map[string]interface{})
		for i, data := range cache {
			item[columns[i]] = *data.(*interface{}) 
		}
		list = append(list, item)
	}
	_ = rows.Close()
	return list, nil
}

좋은 웹페이지 즐겨찾기