【发布时间】:2020-06-07 16:46:39
【问题描述】:
我想像这样将 sql.Row 扫描成一个切片:
func printRows(rows *sql.Rows){
defer rows.Close()
for rows.Next() {
var row = []interface{}{}
err := rows.Scan(row...)
if err != nil {
log.Fatal(err)
}
r, err := json.Marshal(row)
if err != nil {
log.Fatal(err)
}
log.Println("row:", r);
}
}
但我收到此错误:
2020/02/23 20:05:14 原始查询:SELECT * FROM user_table LIMIT 500 2020/02/23 20:05:14 sql:扫描中预期有 6 个目标参数,而不是 0
有人知道如何在不使用切片的情况下使其通用吗?
【问题讨论】:
-
为什么要避免使用切片?您可以检查返回了多少列 (
len(rows.Columns())),然后检查它来构建您的切片。 This post 有更多信息。 -
如果这么简单,您可以在这里添加答案吗?谢谢