为什么QueryRow()。Scan()在表中不为空时返回空字符串?

时间:2019-11-02 14:54:22

标签: sql postgresql go

我正在尝试从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=#

我的问题是,为什么在应为;时返回空字符串 所有检查;我确保我已连接到相同的数据库等

1 个答案:

答案 0 :(得分:0)

显然它不起作用,因为服务器上禁用了SSL模式,但是我尝试在未指定禁用的情况下进行连接。

postgres://postgres:7890@localhost:5432/mewbot更改为postgres://postgres:7890@localhost:5432/mewbot?sslmode=disable解决了我的问题。