我有一个非常复杂的系统,每次它想执行查询时,都会打开和关闭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_r
或var_dump
,但如果该对象是mysqli_close
d,则会导致此警告。如果它是关闭的并且unset
是可以的。
请参阅此处的示例。
http://php.net/manual/en/function.debug-backtrace.php
它使用var_dump而不是print_r
我个人最喜欢的是varexport,因为它创建了php可读格式。