网站开发 · 2024年11月7日

Go 中使用 MySQL 和 Gin 时,遇到“panic recovered:runtime error: invalid memory address or nil pointer dereference”错误,如何解决?

Go 中使用 MySQL 和 Gin 时,遇到“panic recovered:runtime error: invalid memory address or nil pointer dereference”错误,如何解决?插图

go 中 mysql 和 gin 操作报错

问题:

使用 golang 的 mysql 驱动和 gin 框架时遇到如下错误:

panic recovered:
runtime error: invalid memory address or nil pointer dereference
/snap/go/8489/src/database/sql/sql.go:2578 (0x4f30c2)
        (*stmt).execcontext: s.closemu.rlock()

登录后复制

原因:

该错误表明尝试在关闭的语句上执行操作。很可能是因为使用了 mysql 驱动的 stmt.exec() 而没有使用 stmt.execcontext()。

解决方法:

确保始终使用 stmt.execcontext(),即使未使用上下文参数。例如:

_, err := stmt.ExecContext(context.TODO(), req.IdCode, c.Request.RemoteAddr)

登录后复制

以上就是Go 中使用 MySQL 和 Gin 时,遇到“panic recovered:runtime error: invalid memory address or nil pointer dereference”错误,如何解决?的详细内容,更多请关注米云其它相关文章!