報錯信息:panic: runtime error: invalid memory address or nil pointer dereference
報錯分析:字面意思來看是由於無效的內存地址或者空指針引起
代碼檢查:發現如下代碼有問題,initdb的時候重新創建了一個db的變量,把全局的db給覆蓋了,全局的db依然是一個空的內存地址,所以后續用全局的db處理的時候報上述錯誤。
var db *sqlx.DB
func initDB() (err error) {
addr := "root:xxxxx@tcp(127.0.0.1:3306)/goday"
db, err := sqlx.Connect("mysql", addr)
if err != nil {
return
}
// 最大連接
db.SetMaxOpenConns(100)
// 最大空閑
db.SetMaxIdleConns(16)
return
}