gf
gf copied to clipboard
database/gdb: Inconsistency in the err returned when no data is queried during the query
Go version
1.22
GoFrame version
2.7.0
Can this bug be reproduced with the latest release?
Option Yes
What did you do?
1.当Scan的参数是指针的时候,也就是*Result,没有查询到数据,返回sql.ErrNoRows
var results Result
q := g.DB("default").Model("results").Where("1!=1")
err := q.Scan(&results)
fmt.Println("err=", err)
- 当Scan的参数是二级指针的时候,也就是**Result,没有查询到数据,没有返回sql.ErrNoRows
var results *Result
q := g.DB("default").Model("results").Where("1!=1")
err := q.Scan(&results)
fmt.Println("err=", err)
3.当Scan的参数是*[]Result或者*[]*Result的时候,没有查询到数据,没有返回sql.ErrNoRows
var results []*Result
q := g.DB("default").Model("results").Where("1!=1")
err := q.Scan(&results)
fmt.Println("err=", err)
建议统一返回错误,或者不返回错误比较好点
What did you see happen?
err= sql: no rows in result set err= nil err= nil
What did you expect to see?
err= nil err= nil err= nil
或者 err= sql: no rows in result set err= sql: no rows in result set err= sql: no rows in result set