【问题标题】:Is there a way to log the arrays passed in with pg_query_params()?有没有办法记录使用 pg_query_params() 传入的数组?
【发布时间】:2013-05-30 02:17:09
【问题描述】:

我们大量使用pg_query_params() 从 PHP 查询我们的 PostgreSQL 数据库。在分析 postgres 日志时,我们的查询记录如下:

SELECT
    email_address
FROM
    user u
WHERE
    user_id = $1
    AND user_mode = $2
LIMIT $3;

只有数组占位符,而不是实际值。我们的 PHP 应用程序能够记录返回数组的错误,但是如果我们可以直接跟踪故障查询的参数,则调整过程会容易得多。

有没有办法在 PostgreSQL 9.2.4 内部做到这一点?

【问题讨论】:

    标签: php postgresql error-logging


    【解决方案1】:

    如果您设置log_statement = all,那么参数将记录在日志中的单独一行。您可能会发现设置一个包含会话 pid 的 log_line_prefix 对确保您可以将语句文本与参数相关联很有用。

    没有将参数替换为内联查询文本的功能。这是有意识地避免的,因为替换查询参数会使日志分析工具更难收集有关使用不同参数的同一语句的多次运行的统计信息。

    如果有一种方便的方法可以同时做这两者,或者说“我想查看带有参数的语句” .... 但没有。

    【讨论】:

    • 正好解决了问题。至少对于我自己的过程,最好将参数放在外面。现在,我什至可以在过滤特定查询语句后比较持续时间与参数组合。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-02
    • 2012-02-26
    • 1970-01-01
    • 2021-01-21
    • 2018-08-19
    • 2017-12-24
    相关资源
    最近更新 更多