gpt4 book ai didi

mysql - 在另一个函数中使用 sql 连接

转载 作者:IT王子 更新时间:2023-10-29 01:59:22 26 4
gpt4 key购买 nike

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

像下面这样的东西(这个例子错了!)

package main

import (
"fmt"
"net/http"

_ "github.com/go-sql-driver/mysql"
"database/sql"
)

func indexHandler(w http.ResponseWriter, r *http.Request) {
stmt, err := db.Prepare("INSERT userinfo SET username=?,departname=?,created=?")
res, err := stmt.Exec("test", "test", "test")
}

func main() {
db, err := sql.Open("mysql", "connection")
if err != nil {
panic(err)
}
http.HandleFunc("/", indexHandler)
http.ListenAndServe(":3000", nil)
}

谢谢!

最佳答案

使其全局化:

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))

关于mysql - 在另一个函数中使用 sql 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31673269/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com