【问题标题】:PHP Warning: print_r and debug_backtrace when passing a mysqli connectionPHP 警告:传递 mysqli 连接时的 print_r 和 debug_backtrace
【发布时间】:2016-05-17 18:22:31
【问题描述】:

我有一个非常复杂的系统,它每次想要执行查询时都会打开和关闭 MySQLi 连接 - 每个给定操作它大约执行 40,000 次(我知道效率低下)。我决定在函数之间传递 mysqli 连接,以防止这种反复打开和关闭的低效率。

我的问题是:当查询失败时,我想给自己发送电子邮件debug_backtrace(),格式为易于阅读的格式(因此我将其包装在print_r() 中)。出于某种原因,我现在收到一个 PHP 警告,上面写着print_r(): Property access is not allowed yet in... on line XXX,其中第 XXX 行只是读取addNotification("Backtrace: ".print_r(debug_backtrace(), true), "debug");

当回溯中传递的参数之一是 mysqli_connect 对象时,print_r() 不喜欢 debug_backtrace() 是否有某些原因? mysqli_connect 是否缺少 toString 函数?

编辑 经过一番研究,我发现您可以在 mysqli_connect 对象上调用 print_rvar_dump,但如果该对象是 mysqli_closed,则会导致此问题警告。如果它已关闭并且unset 没关系。

【问题讨论】:

  • mysqli_connect() 只返回一个对象,并没有与之关联的其他方法。

标签: php mysqli backtrace debug-backtrace


【解决方案1】:

请参见此处的示例。

http://php.net/manual/en/function.debug-backtrace.php

它使用 var_dump 而不是 print_r

我个人最喜欢的是 var_export,因为它创建了 php 可读格式。

【讨论】:

    猜你喜欢
    • 2011-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多