sql - 在 Go 数据库/sql 包中查看带参数的查询

标签 sql go arguments prepared-statement

我正在尝试测试将参数传递给 sql.DB.Query 方法的行为(使用 database/sql 包和位于 github.com/lib/pq 的 PostgreSQL 驱动程序)。在处理原始查询字符串以查看参数是如何插入之后,有没有办法获取原始查询字符串?例如,我在考虑编写一个准备好的查询,然后检查生成的语句。有任何想法吗?谢谢!

最佳答案

“原始查询字符串”不被客户端解析和插入;它被完整地传递给服务器。

如果查询没有参数,客户端将其作为 simple query 发送;如果查询有参数,客户端将其作为 extended query 发送参数与查询分开。然后服务器解析查询并将其参数化。

Go 的 database/sql 不包含任何日志记录,因此您必须自己编写,使用 Wireshark 嗅探流量,或者在服务器端启用日志记录。

关于sql - 在 Go 数据库/sql 包中查看带参数的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20913669/

相关文章:

MySQL 连接三个表,统计并获取最后一个用户名

go - 跟踪器发送跨度

testing - golang测试中的cpuprofile和memprofile

C++如何使用默认参数指定模板类的所有 friend ?

c++ - 匹配两个字符串的宏定义

sql - Oracle:如何在 SQL 查询中实现 "natural"order-by?

sql - MYSQL 大 LIMIT 偏移量

sql - UTC时间对应的本地时间

go - 如何使用 gocql 执行 cql 文件?

C 拆分 CMD 参数