gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 01:49:41 25 4
gpt4 key购买 nike

我正在尝试连接到 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 对象,但不打开与数据库的任何连接。如果你想测试你的连接,你必须执行一个查询来强制打开一个连接。常见的方法是在您的 DB 对象上调用 Ping()。

参见 http://golang.org/pkg/database/sql/#Openhttp://golang.org/pkg/database/sql/#DB.Ping

关于mysql - 为什么 sql.Open() 不应该返回 nil 作为错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32345124/

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