我正在嘗試將傳入的表單值插入到 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 回答

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