Mysql 在另一个func中使用sql连接

Mysql 在另一个func中使用sql连接,mysql,sql,go,Mysql,Sql,Go,如何在主函数中初始化mysql连接并将其放置在另一个函数中?或者在另一个地方初始化连接并在任何地方使用它 下面类似的内容(此示例错误!) 无论如何谢谢你 让它全球化: var db *sql.DB func indexHandler(w http.ResponseWriter, r *http.Request) { stmt, err := db.Prepare(... ... } func main() { var err error db, err = s

如何在主函数中初始化mysql连接并将其放置在另一个函数中?或者在另一个地方初始化连接并在任何地方使用它

下面类似的内容(此示例错误!)

无论如何谢谢你

让它全球化:

var db *sql.DB

func indexHandler(w http.ResponseWriter, r *http.Request) {
    stmt, err := db.Prepare(...
    ...
}

func main() {
    var err error
    db, err = sql.Open("mysql", "connection")
    ...
或将处理程序创建为闭包:

func createIndexHandler(db *sql.DB) (func (http.ResponseWriter, *http.Request)) {
    return func(w http.ResponseWriter, r *http.Request) {
        stmt, err := db.Prepare(...
        ...
    }
}

func main() {
    db, err := sql.Open("mysql", "connection")
    ...
    http.HandleFunc("/", createIndexHandler(db))
func createIndexHandler(db *sql.DB) (func (http.ResponseWriter, *http.Request)) {
    return func(w http.ResponseWriter, r *http.Request) {
        stmt, err := db.Prepare(...
        ...
    }
}

func main() {
    db, err := sql.Open("mysql", "connection")
    ...
    http.HandleFunc("/", createIndexHandler(db))