gpt4 book ai didi

golang 数据库/sql 使用 pq

转载 作者:IT王子 更新时间:2023-10-29 01:58:26 27 4
gpt4 key购买 nike

我遇到了这个问题

 db, err := sql.Open("postgres", "user=xxx dbname=xxx connect_timeout=5 sslmode=disable")
if err != nil {
log.Fatal(err)
}

我的本​​地主机上没有安装 postgres,所以 sql.Open 应该返回一些错误,但实际上直到我尝试准备查询并最终收到连接被拒绝的错误才返回

stmt, err := c.DB.Prepare("SELECT id FROM services WHERE name = $1")
if err != nil {
log.Fatal(err)
}

这是预期的行为吗?或者我遗漏了什么...

最佳答案

根据 this , 这是预期的行为。 Open() 不直接打开与数据库的连接。而是在第一次实际使用数据库时打开第一个连接。

Open may just validate its arguments without creating a connection 
to the database.
To verify that the data source name is valid, call Ping.

使用Ping()检查连接是否有效。

关于golang 数据库/sql 使用 pq,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40607359/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com