尽管数据库已记录,但Gorm Select查询返回了0行

时间:2019-07-19 02:42:15

标签: go

我正在建立一个golang模型,并使用gorm查询mysql数据库。当我使用gorm进行选择查询时,将使用以下代码:

rows,err := db.Table(my_table_name).Where(my_condition).Select(fields_select).Rows

我认为它将为我返回行(类型为* sql.rows),但通知说0行受到影响或返回,我已经注销了查询:

SELECT id, post_data FROM `post_data` WHERE (id=57)

然后我将此查询传递给mysql,它返回值,但在go中运行时却没有。那是什么问题,请帮忙

这里是我的全部功能选择

func (m MY_Model) Select(condition map[string]string, table_name string, fields string) *sql.Rows
{

    // Here I create a condition string
    str_condition := ""
    for k,v := range condition {
        str_condition += k + "=" + v + " AND "
    }
    last:=len(str_condition)-5;
    str_condition = str_condition[:last]

    // Here I create a My_Model object to connect to database
    mm := MY_Model{}
    mm.DB = mm.Connect_database()
    rows, err := mm.DB.Debug().Table(table_name).Where(str_condition).Select(fields).Rows()
    if err != nil {
        fmt.Println(err)
    }
    defer rows.Close()
    mm.Close_database(mm.DB)

    return rows
}

这是我的MY_Model结构

type mysql struct 
{
    Mysql mysql_config `json:"MySQL"`
}

type mysql_config struct 
{
    Host string `json:"Host"`
    Port string `json:"Port"`
    DBName string `json:"DBName"`
    Username string `json:"Username"`
    Password string `json:"Password"`
}

0 个答案:

没有答案