PHP警告:传递mysqli连接时print_r和debug_backtrace


PHP Warning: print_r and debug_backtrace when passing a mysqli connection

我有一个非常复杂的系统,每次它想执行查询时,都会打开和关闭MySQLi连接,每个给定的操作大约要执行40000次(我知道效率很低)。我决定在函数之间传递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函数?

EDIT经过进一步研究,我发现您可以在mysqli_connect对象上调用print_rvar_dump,但如果该对象是mysqli_closed,则会导致此警告。如果它是关闭的并且unset是可以的。

请参阅此处的示例。

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

它使用var_dump而不是print_r

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