diff --git a/g/database/gdb/gdb_base.go b/g/database/gdb/gdb_base.go index 032bdbf23..7270e4c60 100644 --- a/g/database/gdb/gdb_base.go +++ b/g/database/gdb/gdb_base.go @@ -336,9 +336,14 @@ func (db *Db) insert(table string, data Map, option uint8) (sql.Result, error) { if option == OPTION_SAVE { var updates []string for k, _ := range data { - updates = append(updates, fmt.Sprintf("%s%s%s=VALUES(%s)", db.charl, k, db.charr, k)) + updates = append(updates, + fmt.Sprintf("%s%s%s=VALUES(%s%s%s)", + db.charl, k, db.charr, + db.charl, k, db.charr, + ), + ) } - updatestr = fmt.Sprintf(" ON DUPLICATE KEY UPDATE %s", strings.Join(updates, ",")) + updatestr = fmt.Sprintf("ON DUPLICATE KEY UPDATE %s", strings.Join(updates, ",")) } return db.Exec( fmt.Sprintf("%s INTO %s%s%s(%s) VALUES(%s) %s", @@ -389,7 +394,12 @@ func (db *Db) batchInsert(table string, list List, batch int, option uint8) (sql if option == OPTION_SAVE { var updates []string for _, k := range keys { - updates = append(updates, fmt.Sprintf("%s%s%s=VALUES(%s)", db.charl, k, db.charr, k)) + updates = append(updates, + fmt.Sprintf("%s%s%s=VALUES(%s%s%s)", + db.charl, k, db.charr, + db.charl, k, db.charr, + ), + ) } updatestr = fmt.Sprintf(" ON DUPLICATE KEY UPDATE %s", strings.Join(updates, ",")) } @@ -479,7 +489,7 @@ func (db *Db) formatCondition(condition interface{}) (where string) { value := gconv.String(vs.MapIndex(k).Interface()) isNum := gstr.IsNumeric(value) if len(where) > 0 { - where += " and " + where += " AND " } if isNum || value == "?" { where += key + "=" + value diff --git a/g/database/gdb/gdb_type_record.go b/g/database/gdb/gdb_type_record.go index 55555e4e9..f69d64c19 100644 --- a/g/database/gdb/gdb_type_record.go +++ b/g/database/gdb/gdb_type_record.go @@ -36,7 +36,7 @@ func (r Record) ToMap() Map { func (r Record) ToStruct(obj interface{}) error { m := make(map[string]interface{}) for k, v := range r { - m[k] = v + m[k] = v.String() } return gconv.MapToStruct(m, obj) } diff --git a/geg/database/orm/mysql/gdb.go b/geg/database/orm/mysql/gdb.go index 476878571..21b4f4ee1 100644 --- a/geg/database/orm/mysql/gdb.go +++ b/geg/database/orm/mysql/gdb.go @@ -487,11 +487,11 @@ func getQueriedSqls() { } func main() { - db.SetDebug(true) - r, err := db.Table("test").Where("id=1").One() - fmt.Println(r["datetime"]) - fmt.Println(r["datetime"].Time().Date()) - fmt.Println(err) + //db.SetDebug(true) + //r, err := db.Table("test").Where("id=1").One() + //fmt.Println(r["datetime"]) + //fmt.Println(r["datetime"].Time().Date()) + //fmt.Println(err) //create() //create() //insert() @@ -516,6 +516,6 @@ func main() { // //keepPing() //likeQuery() - //mapToStruct() - getQueriedSqls() + mapToStruct() + //getQueriedSqls() } \ No newline at end of file diff --git a/geg/database/orm/mysql/gdb_debug.go b/geg/database/orm/mysql/gdb_debug.go index 9d17c4bf1..75a8af5c3 100644 --- a/geg/database/orm/mysql/gdb_debug.go +++ b/geg/database/orm/mysql/gdb_debug.go @@ -2,6 +2,7 @@ package main import ( "gitee.com/johng/gf/g/database/gdb" + "gitee.com/johng/gf/g" ) func main() { @@ -28,5 +29,7 @@ func main() { // 构造一条错误查询 db.Table("user").Where("no_such_field=?", "just_test").One() + db.Table("user").Data(g.Map{"name":"smith"}).Where("uid=?", 1).Save() + db.PrintQueriedSqls() } \ No newline at end of file