当表中不为空时,为什么 QueryRow().Scan() 返回空字符串?

我正在尝试从 PostgreSQL 数据库表中查询一行。


func getPrefix(serverID int64, db *sql.DB) string {

    var prefix string

    err := db.QueryRow("SELECT prefix FROM servers WHERE serverid = 1234").Scan(&prefix)

    if err != nil {

        fmt.Println(err.Error())

    }

    spew.Dump(prefix)

    fmt.Println("Prefix is " + prefix)

    return prefix

}

显然,该变量prefix是一个空字符串,但是当我在数据库中查询它时,它不为空


You are now connected to database "mewbot" as user "postgres".

mewbot=# select * from servers;

 serverid | prefix

----------+--------

     1234 | ;

(1 row)



mewbot=#

我的问题是,为什么它应该返回空字符串,而应该; 进行所有检查;我已确保我已连接到同一个数据库等


慕田峪4524236
浏览 88回答 1
1回答

慕沐林林

显然它不起作用,因为我的服务器上禁用了 SSL 模式,但我试图在没有指定它被禁用的情况下进行连接。更改postgres://postgres:7890@localhost:5432/mewbot以postgres://postgres:7890@localhost:5432/mewbot?sslmode=disable解决我的问题。
打开App,查看更多内容
随时随地看视频慕课网APP