diff --git a/chain.go b/chain.go index 5167ee4..b5d1289 100644 --- a/chain.go +++ b/chain.go @@ -737,8 +737,27 @@ func (this *Query) CreateStmt() error { dbName := getTableName(this.dbname, this.table, this.dbtype) var sql string + if DB_PROVIDER == "PgsqlDb" { + insert_data := []string{} + value_data := []string{} + for _, rv := range this.data { + dv := strings.Split(rv, "=") + if len(dv) != 2 { + return errors.New("参数错误,条件值错误,=号不存在") + } + if strings.Contains(rv, "=?") { + insert_data = append(insert_data, dv[0]) + value_data = append(value_data, "?") + } else { + insert_data = append(insert_data, dv[0]) + value_data = append(value_data, dv[1]) + } - sql = helper.StringJoin("insert into ", dbName, " set ", strings.Join(this.data, " , ")) + } + sql = helper.StringJoin("insert into ", dbName, "("+strings.Join(insert_data, " , ")+")", " value ", "("+strings.Join(value_data, " , ")+")") + } else { + sql = helper.StringJoin("insert into ", dbName, " set ", strings.Join(this.data, " , ")) + } if this.debug { log.Println("insert sql:", sql, this.value) diff --git a/db.go b/db.go index 3ae47d5..8f3361c 100644 --- a/db.go +++ b/db.go @@ -611,7 +611,11 @@ func FetchRows(dbName, table_name, alias string, titles string, with, join [][]s from := strconv.Itoa((page - 1) * page_size) offset := strconv.Itoa(page_size) if from != "" && offset != "" { - sql_str = helper.StringJoin(sql_str, " limit ", from, " , ", offset) + if DB_PROVIDER == "PgsqlDb" { + sql_str = helper.StringJoin(sql_str, " limit ", offset, " OFFSET ", from) + } else { + sql_str = helper.StringJoin(sql_str, " limit ", from, " , ", offset) + } } } if debug {