go-sql-driver/mysql - 将 float64 插入 mariadb (双列)

我是 Go 新手,几天前我刚刚开始学习它的并发性:-)。我有一个不同的库,它返回 time.Duration 类型,其中包含 Seconds,这是一个我想使用并存储在数据库中的 float64 精度值。


以下是与我想要实现的目标相关的点点滴滴:


type pResp struct {

    address string

    rtt     time.Duration

    sent    int

    recv    int

}


stmt, err := db.Prepare("insert pings set domain = ?, packet_rtt = ?, packets_sent = ?, packets_recv = ?")

res, err := stmt.Exec(r.address, r.rtt.Seconds, r.sent, r.recv)

这是我得到的错误:


2019/08/26 19:57:35 sql: converting argument $2 type: unsupported type func() float64, a func

Process exiting with code: 0

MySQL 中的列设置为 double,应该是 64 位...我不确定这里哪里出了问题。这是我正在使用的库的限制吗?谢谢。


料青山看我应如是
浏览 53回答 1
1回答

月关宝盒

看来您传递的是一流函数func() float64而不是实际的 float64 原语。该函数的源代码看起来是r.rtt.Seconds,应该作为 来调用r.rtt.Seconds()。
打开App,查看更多内容
随时随地看视频慕课网APP