首页 > 文章列表 > Go + MySQL + Gin 报错 \"invalid memory address or nil pointer dereference\" 如何解决?

Go + MySQL + Gin 报错 \"invalid memory address or nil pointer dereference\" 如何解决?

279 2024-12-26

Go + MySQL + Gin 报错

Go + MySQL + Gin 报错分析

你遇到的错误是 "runtime error: invalid memory address or nil pointer dereference。",这通常是因为在指针为 nil 或指向无效内存地址时使用了它而引起的。

根据你提供的错误堆栈,可以看出问题出在使用 stmt.Exec 方法处。

可能的错误原因:

  • 调用 stmt.Close 方法关闭了准备好的语句,导致其指针为 nil。
  • 准备语句在使用 stmt.Exec 之前没有正确地重新准备。

Stmt.Exec 方法用于执行已准备的 SQL 语句,而 Stmt.ExecContext 方法接受 context.Context 参数,允许在执行时传递上下文信息。

如果你使用的是 MySQL 驱动中的 stmt.Exec,并且没有使用 stmt.ExecContext,则需要确保在每次使用 stmt.Exec 之前重新准备该语句。

因此,要解决此问题,请尝试以下操作:

  1. 在使用 stmt.Exec 之前重新准备该语句。
  2. 确保在不再需要准备好的语句时将其关闭。
来源:1729980711