为了账号安全,请及时绑定邮箱和手机立即绑定

去构建错误“rows.Columns 未定义(类型 *sql.Row 没有字段或方法列)”

去构建错误“rows.Columns 未定义(类型 *sql.Row 没有字段或方法列)”

Go
守候你守候我 2021-11-15 16:54:19
我想使用 golang.while buildng 以下代码从我的 postgresql 数据库中打印具有多列的多行package mainimport (    "database/sql"    "fmt"    "github.com/gin-gonic/gin"    _ "github.com/lib/pq"    "log"    "runtime")func main() {    runtime.GOMAXPROCS(runtime.NumCPU())    db, err := sql.Open("postgres", "dbname=sample_data user=postgres password=postgres sslmode=disable")    defer db.Close()    if err != nil {        fmt.Println("error connecting to DB")    }    r := gin.Default()    r.GET("/cin_display", func(c *gin.Context) {        rows := db.QueryRow("SELECT cin FROM companies limit 1;")        columns, _ := rows.Columns()        count := len(columns)        values := make([]interface{}, count)        valuePtrs := make([]interface{}, count)        for rows.Next() {            for i, _ := range columns {                valuePtrs[i] = &values[i]            }            rows.Scan(valuePtrs...)            for i, col := range columns {                var v interface{}                val := values[i]                b, ok := val.([]byte)                if ok {                    v = string(b)                } else {                    v = val                }                fmt.Println(col, v)            }        }    })}func Connect(connectionString string) *sql.DB {    db, err := sql.Open("postgres", connectionString)    if err != nil {        log.Fatal(err)    }    return db}我收到类似的错误rows.Columns 未定义(类型 *sql.Row 没有字段或方法列)rows.Next 未定义(类型 *sql.Row 没有字段或方法 Next)如何解决这个问题?
查看完整描述

2 回答

?
慕田峪9158850

TA贡献1794条经验 获得超7个赞

QueryRow 返回单个 *sql.Row

你想要的是Query,它会给你*sql.Rows你正在尝试使用的方法。


查看完整回答
反对 回复 2021-11-15
?
繁花如伊

TA贡献2012条经验 获得超12个赞

您在此处屏蔽了 database/sql 包: sql := `select * from table sql 是一个字符串,而不是包。重命名字符串,例如查询,它将起作用


查看完整回答
反对 回复 2021-11-15
  • 2 回答
  • 0 关注
  • 209 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信