GORM 执行结果判断问题(error nil问题)

起因

使用GORM执行数据库操作时,返回了*DB,如果我们直接使用以下方式判断,会一直返回false,不能用作语句执行结果的判断

    err := db.Create(&demand)
	if err != nil {
		return false, err.Error
	}
	return true, nil

正确处理

判断时需要使用返回的结构体的Error成员进行判断,如下即可进行正确返回

    err := db.Create(&demand)
	if err.Error != nil {
		return false, err.Error
	}
	return true, nil

原因

分析gorm源码我们可以发现,gorm语句执行返回了一个*DB结构体,而error对象被包含在其中,所以gorm执行完返回该结构体时不能直接用作执行结果判断,需要使用其中的Error成员

GORM 执行结果判断问题(error nil问题)_第1张图片

 

你可能感兴趣的:(#,Golang,服务端,golang,gorm,go语言,数据库,mysql)