Abc*_*hen 23 php mysqli xdebug
我有一段这样的代码:
$conn = new mysqli($host, $username, $passwd, $dbname);
...
$stmt = $conn->prepare('SELECT ...');
$stmt->bind_param(...);
$stmt->execute();
$stmt->bind_result(...);
while($stmt->fetch())
{
// do something here
}
$stmt->close();
...
// do something more here that has absolutely nothing to do with $stmt
Run Code Online (Sandbox Code Playgroud)
这完全没问题.我得到了我期望的结果,没有错误或任何不应该发生的事情.
但是,如果我设置一个断点(Xdebug 2.2.5/2.2.6/2.2.8/2.3.2和PHP 5.5.3/5.5.15/5.6.0/5.6.6/5.6.10)之后 的一行$stmt->close();
,我得到很多警告
不允许财产访问
要么
无法获取mysqli_stmt
我以为我错过了关闭另一个mysqli声明,但我得到了所有结果.在我的代码中似乎没有问题......
有没有办法摆脱这个错误的警告?
更新:此问题仍存在于PHP 7.0.1/Xdebug 2.4.0 RC3中.
Abc*_*hen 21
报告了一些类似的问题
http://bugs.xdebug.org/view.php?id=900
https://bugs.php.net/bug.php?id=60778
摆脱这些消息的一种方法是添加
unset($stmt);
Run Code Online (Sandbox Code Playgroud)
在关闭语句之后和断点之前.如果这没有帮助,您还应该添加
unset($connection);
Run Code Online (Sandbox Code Playgroud)
关闭@Martin在评论中提到的连接后.
这并没有解决问题本身,但让你继续你的工作,直到可以修复一段时间.
编辑:现在还有一个报道的问题 :)
编辑:这似乎是一个错误在库MySQLi司机报道在这里.
编辑:如果您使用PDO,似乎不会出现此错误.所以这可能是切换到PDO的另一个原因.
归档时间: |
|
查看次数: |
3918 次 |
最近记录: |