我试图在连接后插入数据,当我命令INSERT...我能够连接到数据库的逻辑时,但是当我取消命令它们时,我得到了错误panic: runtime error: invalid memory address or nil pointer dereference[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x40f8e2a]这是我的功能:func Connect() (*sql.DB, error) { db, err := sql.Open("postgres", os.Getenv("PG_URL")) if err != nil { return nil, err } defer db.Close() stmt, _ := db.Prepare("INSERT INTO users(name, email, password) VALUES(?,?,?)") res, err := stmt.Exec("test", "test@mail.com", "12344") if err != nil{ panic(err.Error()) } fmt.Println(res) fmt.Println("Successfully connected!") return db, nil}我也尝试过像这篇文章 go sql一样做同样的事情 ,并且有同样的问题我是否错误地实现了这个?
2 回答
斯蒂芬大帝
TA贡献1827条经验 获得超8个赞
我对 sqlite 有同样的问题。
正如 Ivaylo Novakov 在他的回答中所描述的那样,我必须记录准备语句的错误(我之前像你一样忽略了stmt, _
)
对我来说,只要我在开发它就可以正常运行,但是当我创建最终的二进制文件时,我忘记启用了cgo
)。
错误得到了提示:
Binary was compiled with 'CGO_ENABLED=0', go-sqlite3 requires cgo to work. This is a stub
- 2 回答
- 0 关注
- 124 浏览
添加回答
举报
0/150
提交
取消