在Golang 中使用可變參數連接數組介面
在嘗試使用Gorm 執行批次插入時,由於以下原因遇到了錯誤列數與提供的值不符。此問題源自於使用陣列介面時查詢格式不正確。
解決方案:
要解決此問題,您需要使用“...”將切片的元素傳遞給帶有可變參數的函數時的運算符。這將指示編譯器單獨傳遞每個元素,而不是將切片值作為單一參數傳遞。
tx.Exec(sqlStr, vals...)
說明:
Tx.Exec()函式有簽章func (tx *Tx) Exec(query string, args ...interface{}) (Result, error)。這表示您可以傳遞可變數量的參數作為第二個參數,指定為 args。透過使用「...」運算符,您可以告訴編譯器將 vals 切片展開為各個參數。
這將導致執行以下查詢:
INSERT INTO city(code, name) VALUES ('XX1', 'Jakarta'),('XX2', 'Bandung')
以上是如何在 Go 中正確使用 Gorm 的 `Exec` 的可變參數進行批次插入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!