为什么 sql.Open() 不应该返回 nil 作为错误?

2024-02-18

我正在尝试连接到 mysql 数据库。

我尝试查看如果我提供了错误的连接信息是否会收到错误,但它仍然返回nil作为错误。即使我完全关闭 mysql,它仍然不会返回错误。如果此函数不返回错误,那么在该函数之后检查错误有何意义?

这是在 Windows 上,我使用的是 XAMPP,并且没有数据库密码。用户名是"root".

import (
    "database/sql"
    "log"

    _ "github.com/go-sql-driver/mysql"
)

func main() {
    db, err := sql.Open("mysql", "root@tcp(127.0.0.1:3306)/dbname?charset=utf8")
    if err != nil {
        log.Fatal(err)
    }
    defer db.Close()
}

SQL.Open 仅创建 DB 对象,但不打开任何与数据库的连接。如果您想测试连接,则必须执行查询来强制打开连接。常见的方法是在数据库对象上调用 Ping()。

See http://golang.org/pkg/database/sql/#Open http://golang.org/pkg/database/sql/#Open and http://golang.org/pkg/database/sql/#DB.Ping http://golang.org/pkg/database/sql/#DB.Ping

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 sql.Open() 不应该返回 nil 作为错误? 的相关文章

随机推荐