我正在嘗試將傳入的表單值插入到 Heroku 上的 PostgreSQL 數據庫表中。這是正在使用的 Go 函數:func Insert(w http.ResponseWriter, r *http.Request) { db := dbConn() if r.Method == "POST" { nameo := r.FormValue("name") typeo := r.FormValue("asslia") balanceo := r.FormValue("balance") insForm, err := db.Prepare("INSERT INTO al(name, asslia, balance) VALUES( ? , ? , ? )") if err != nil { panic(err.Error()) } insForm.Exec(nameo, typeo, balanceo) log.Println("INSERT: Name: " + nameo + " | Type: " + typeo) } defer db.Close() http.Redirect(w, r, "/", 301)}我不斷收到pq: syntax error at or near ","該行的錯誤insForm, err := db.Prepare("INSERT INTO al(name, asslia, balance) VALUES( ? , ? , ? )")該表之前是這樣創建的:CREATE TYPE types AS ENUM ('asset', 'liability');CREATE TABLE IF NOT EXISTS al (id SERIAL, asslia TYPES, balance MONEY, name VARCHAR(64) NOT NULL UNIQUE, CHECK (CHAR_LENGTH(TRIM(name)) > 0));我究竟做錯了什么?
1 回答

慕尼黑8549860
TA貢獻1818條經驗 獲得超11個贊
正確的方法是替換 ? 其中 N 是作為額外參數傳遞給 db.Exec() 的參數的索引
這個新語句不會導致錯誤:
insForm, err := db.Prepare("INSERT INTO al(name, asslia, balance) VALUES( $1 , $2 , $3 )")
- 1 回答
- 0 關注
- 180 瀏覽
添加回答
舉報
0/150
提交
取消