### 遇到个问题,结构体内有time.Time类型的成员,xorm框架的update会报错 err :Params type error
**例如 结构体**
```
type Userinfo struct {
Userid string `xorm:"not null pk VARCHAR(100)"`
Username string `xorm:"not null VARCHAR(255)"`
Createtime time.Time `xorm:"TIMESTAMP(6)"`
Modifiedtime time.Time `xorm:"TIMESTAMP(6)"`
}
```
**然后初始化其Userid和Username,不初始化是时间**
```
u := Userinfo{
Userid : "11111",
Username : "tom",
}
```
**然后输出这个 u **
```
log.Println(u)
结果如下:
2019/07/04 21:38:33 {11111 tom 0001-01-01 00:00:00 +0000 UTC 0001-01-01 00:00:00 +0000 UTC}
```
**然后用xorm的update方法,则报错了
```
_,err = db.Engine.Id(u.Userid).Update(&u)
if err != nil {
log.Println(err)
}
结果err信息如下:
2019/07/04 21:39:42 Params type error
```
**对于字段值为false或0或空值的更新,不知道xorm会不会更新,我本意是不想更新时间的。而且用update还报错了,除非用
Exec方法,但如果字段很多的时候,那如果因为1个是time.Time类型的字段而导致用不了update方法,要自己写sql的话,这就
非常的长了。社区大神有什么好的方法吗?
**
**
顺带说下,insert方法是没问题的。
**
**找到原因了。**
```
func (u *Userinfo)ModifyUserinfo() (err error) {
_,err = db.Engine.Id(u.Userid).Update(&u) //这里应该直接用u而不是用&u,本身已经是指针
```
#1
更多评论
**
update本身会对false,0和空值进行过滤而不更新的。
**
[xorm update的用法](https://www.kancloud.cn/kancloud/xorm-manual-zh-cn/56025)
#2