我正在建立一个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"`
}