我試圖在連接后插入數據,當我命令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", "[email protected]", "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 關注
- 150 瀏覽
添加回答
舉報
0/150
提交
取消