如何在postgresql中跟踪sql查询


sql.Register("sqlWithHooks", sqlhooks.Wrap(r.Driver(), &Hooks{}))
// Connect to the registered wrapped driver
db, err := sql.Open("sqlWithHooks", ":memory:")
if err != nil {
    fmt.Println("error",err)
}
rows, err := db.Query("SELECT id,name,cid,dimension,price FROM   table_name ")
if err != nil {
    fmt.Println("inside the error .........................",err)
}

运行此代码后,我在连接信息字符串中发现一个错误,在":memory:"之后缺少"="。有人能告诉我我在这里做了什么吗?

sql.Open()的第二个参数需要一个连接字符串。它有以下形式:

fmt.Sprintf("host=%s port=%d user=%s password=%s dbname=%s sslmode=disable",
            host, port, user, password, dbname)

它包含打开与Postgres的连接所需的信息。

sql.Open((需要两个值"driverName"one_answers"dataSourceName"。在sqlhooks的例子中,他们使用sqlite作为数据库。除此之外,他们还使用了go-sqlite3,如果您仔细查看文件sqlite3,请访问第886行。您会看到数据源名称":memory:",这意味着我们选择sqlitedb的内存利用率。

"dataSourceName"将根据所选数据库的不同而有所不同。它的基本意思是数据源名称格式的连接字符串。

为什么这样做fmt。Sprintf("主机=%s端口=%d用户=%s密码=%s数据库名=%s sslmode=disable",主机、端口、用户、密码、数据库名(

最新更新