在使用 golang、mysql 和 gin 时,您遇到如下 panic 报错:
panic recovered: runtime error: invalid memory address or nil pointer dereference /snap/go/8489/src/runtime/panic.go:221 (0x44a446) panicmem: panic(memoryerror)
出现这个错误通常是因为 prepare 阶段拿到的 stmt 在关闭后仍然在使用。
解决方法:
立即学习“go语言免费学习笔记(深入)”;
在 golang 中,使用 mysql 时,在执行查询前必须调用 stmt.prepare() 初始化 sql 语句,然后才能使用 stmt.exec() 执行查询。
stmt, err := db.prepare("select * from users where id = ?") if err != nil { // 处理错误 } row := stmt.queryrow(id) // ...
在使用完 stmt 后,必须调用 stmt.close() 关闭它,以释放资源。
defer stmt.Close()
如果您在未使用 stmt 时关闭了它,就会出现上述 panic 错误。
建议:
以上就是Golang 中使用 MySQL 和 Gin 时,遇到 panic 报错 "runtime error: invalid memory address or nil pointer dereference" 如何解决?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号