为了账号安全,请及时绑定邮箱和手机立即绑定

如何在postgresql中跟踪sql查询

如何在postgresql中跟踪sql查询

Go
子衿沉夜 2023-05-08 16:00:18
sql.Register("sqlWithHooks", sqlhooks.Wrap(r.Driver(), &Hooks{}))// Connect to the registered wrapped driverdb, 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)}运行此代码后,我收到连接信息字符串中“:内存:”之后缺少“=”的错误。谁能告诉我我在这里所做的有什么问题?
查看完整描述

2 回答

?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

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

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

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


查看完整回答
反对 回复 2023-05-08
?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

sql.Open() 需要 2 个东西 'driverName' 和 'dataSourceName'。以sqlhooks为例,他们使用 sqlite 作为数据库。除此之外,他们还使用了go-sqlite3,如果你仔细查看文件sqlite3.go的第 886 行。你会看到数据源名称“:memory:”,这意味着我们选择了 sqlite db 的内存利用。

'dataSourceName' 将根据选择的数据库而有所不同。它基本上意味着数据源名称格式的连接字符串。

这有效的原因 fmt.Sprintf("host=%s port=%d user=%s password=%s dbname=%s sslmode=disable", host, port, user, password, dbname)


查看完整回答
反对 回复 2023-05-08
  • 2 回答
  • 0 关注
  • 194 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信