【问题标题】:python-mysql : How to get interpolated query string?python-mysql:如何获取插值查询字符串?
【发布时间】:2026-01-10 19:00:01
【问题描述】:

在诊断 SQL 查询问题时,使用 MySQLdb 的安全插值,在将参数插值到查询字符串后能够看到查询字符串有时会很有用。

有没有办法从 MySQL 异常对象或连接对象本身获取该信息?

【问题讨论】:

    标签: python mysql


    【解决方案1】:

    也许您可以使用slow_query_log

    如果您无法打开 mysql 记录所有查询的内部功能,您需要在执行它们之前写下所有查询...您可以将它们存储在自己的日志文件中,或者存储在表中(或其他一些系统)。如果是这样的话,如果我是你,我会为具有日志记录功能的连接创建一个包装器。

    【讨论】:

      【解决方案2】:

      使用 mysql 自己的能力来记录查询并监视它们。

      【讨论】:

      • 这是一个很好的建设性建议,但这并不总是一个可用的选项。许多托管服务不会将 MySQL 服务器日志提供给托管帐户。