From f579c724c6bac082ed1dd7470156c1eccbd82f3b Mon Sep 17 00:00:00 2001 From: jflyfox Date: Fri, 22 Jan 2021 23:21:29 +0800 Subject: [PATCH] fix issue in batch number for package gdb --- .../database/gdb/mysql/gdb_batch_insert.go | 24 +++++++++++++++++++ database/gdb/gdb_core.go | 2 +- 2 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 .example/database/gdb/mysql/gdb_batch_insert.go diff --git a/.example/database/gdb/mysql/gdb_batch_insert.go b/.example/database/gdb/mysql/gdb_batch_insert.go new file mode 100644 index 000000000..171bb9fb4 --- /dev/null +++ b/.example/database/gdb/mysql/gdb_batch_insert.go @@ -0,0 +1,24 @@ +package main + +import ( + "fmt" + "github.com/gogf/gf/frame/g" +) + +func main() { + db := g.DB() + db.SetDebug(true) + list := make(g.List, 0) + for i := 0; i < 100; i++ { + list = append(list, g.Map{ + "name": fmt.Sprintf(`name_%d`, i), + }) + } + r, e := db.Table("user").Data(list).Batch(2).Insert() + if e != nil { + panic(e) + } + if r != nil { + fmt.Println(r.LastInsertId()) + } +} diff --git a/database/gdb/gdb_core.go b/database/gdb/gdb_core.go index 12c0d25c1..5ccdc2516 100644 --- a/database/gdb/gdb_core.go +++ b/database/gdb/gdb_core.go @@ -690,7 +690,7 @@ func (c *Core) DoBatchInsert(link Link, table string, list interface{}, option i } } valueHolder = append(valueHolder, "("+gstr.Join(values, ",")+")") - if len(values) == batchNum || (i == listMapLen-1 && len(values) > 0) { + if len(valueHolder) == batchNum || (i == listMapLen-1 && len(valueHolder) > 0) { r, err := c.DB.DoExec( link, fmt.Sprintf(