You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP升级后如何配置php.ini使错误日志显示完整SQL查询

如何让PHP错误日志完整记录SQL查询语句?

要解决错误日志中SQL查询被截断的问题,你可以通过调整php.ini里的两个关键配置项来实现:

  • 调整异常追踪字符串长度:修改zend.exception_string_max_len参数,它控制PHP在异常栈追踪中显示的字符串参数最大长度。默认值通常是1024,不足以容纳较长的SQL语句。你可以把它设为更大的数值,比如:

    zend.exception_string_max_len = 8192
    

    数值可以根据你的实际SQL长度调整,比如16384甚至更高,只要不超出服务器的合理资源范围。

  • 调整单条日志最大长度:修改log_errors_max_len参数,它限制了单条错误日志条目的字节数。如果这条值太小,即使完整的SQL能被捕获,整个日志条目也会被截断。建议设置为和上面参数相近的数值:

    log_errors_max_len = 8192
    

修改完这两个配置后,必须重启你的Web服务器(Apache、Nginx等),让配置生效。之后再触发相关错误时,错误日志里的SQL查询就会完整显示,不会再出现SELECT *,REPLAC...这类截断的情况。

另外,如果有部分场景还是无法完整记录,你也可以在代码层面做补充:比如在调用mysqli->query()之前,手动把SQL语句写入自定义日志,或者捕获查询异常时,单独输出完整SQL到日志文件。不过优先通过php.ini配置来全局解决问题会更高效。

内容的提问来源于stack exchange,提问作者Shane

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 17:30:03