繁体   English   中英

Go MySQL 中的错误:func(*Rows)扫描返回恐慌:(func()字符串)

[英]error in Go MySQL: func (*Rows) Scan returns panic: (func() string)

我正在尝试扫描查询返回的行,但出现此错误

panic: (func() string) 0xc0000ac108

goroutine 1 [running]:
main.main()
        C:/Users/User/OneDrive/Dokumente/AIR/go/access/showAccess.go:35 +0x445
exit status 2

,我不明白。 所有变量的类型都是正确的,Scan 应该直接转换类型。 这是代码:

    var (
        id int
        operation string 
        time string
        operator int
    )

    // query for all records in accesses table
    rows, err := DBClient.Query("SELECT * FROM accesses")

    if err != nil {
        panic(err.Error)
    }

    defer rows.Close()

    // printing each record formatted
    for rows.Next() {
        if err := rows.Scan(&id, &operation, &time, &operator); err != nil {
            panic(err.Error) // here the error comes
        }
        fmt.Printf("ID: %3d, operation: %20s, time: %20s, operator: %d\n", 
        id, operation, time, operator)
    }

感谢您的时间。

我想您的列返回的顺序与您在 Scan 调用中输入的顺序不同。 尝试删除“*”,并输入实际的列名,或将 arguments 重新排序到 Scan 调用。

就像Yinon Eliraz提到的那样,我忘记在错误之后戴上大括号。 panic(err.Error())解决了问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM