报错信息: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
}