mysqli + xdebug 断点后关闭语句导致很多警告

mysqli + xdebug breakpoint after closing statement result in many warnings(mysqli + xdebug 断点后关闭语句导致很多警告)
本文介绍了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

这很好用.我得到了预期的结果,没有错误或任何不应该发生的事情.

This works perfectly fine. I get the results I expected, there are no errors or anything that is not supposed to happen.

但是如果我将断点(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();,我收到很多警告,比如

But if I set a break point (Xdebug 2.2.5 / 2.2.6 / 2.2.8 / 2.3.2 and PHP 5.5.3 / 5.5.15 / 5.6.0 / 5.6.6 / 5.6.10) to a line after $stmt->close();, I get many warnings like

尚未允许访问属性

无法获取 mysqli_stmt

Couldn't fetch mysqli_stmt

我以为我错过了关闭另一个 mysqli 语句,但我得到了所有结果.我的代码似乎没有问题...

I thought I missed to close another mysqli statement, but I get all results. There seems to be just no problem in my code...

有没有办法摆脱这种错误警告?

Is there a way to get rid of this wrong warnings?

更新:这个问题在 PHP 7.0.1/Xdebug 2.4.0 RC3 中仍然存在.

Update: This problem still exist in PHP 7.0.1 / Xdebug 2.4.0 RC3.

推荐答案

有一些类似的问题报告
http://bugs.xdebug.org/view.php?id=900
https://bugs.php.net/bug.php?id=60778

摆脱此消息的一种方法是添加

One way to get rid of this messages is to add

unset($stmt);

在关闭语句之后和断点之前.如果这没有帮助,您还应该添加

after closing the statement and before the breakpoint. If this does not help, you should also add

unset($connection);

在@Martin 在评论中提到关闭连接之后.

after closing the connection as mentioned by @Martin in the comments.

这本身并不能解决问题,而是让您继续工作,直到这可能会在一段时间内得到解决.

This does not solve the problem itself, but let you go on with your work until this may be fixed some time.

编辑:现在还有一个报告的问题 :)

编辑:据报道,这似乎是 MySQLi 驱动程序中的一个错误 此处.

EDIT: This seems to be a bug in the MySQLi driver as reported here.

EDIT:如果您使用 PDO,看起来这个错误不会出现.所以这可能是切换到 PDO 的另一个原因.

EDIT: Looks like this bug does not appear if you use PDO. So this is maybe an other reason to switch to PDO.

这篇关于mysqli + xdebug 断点后关闭语句导致很多警告的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

相关文档推荐

DeepL的翻译效果还是很强大的,如果我们要用php实现DeepL翻译调用,该怎么办呢?以下是代码示例,希望能够帮到需要的朋友。 在这里需要注意,这个DeepL的账户和api申请比较难,不支持中国大陆申请,需要拥有香港或者海外信用卡才行,没账号的话,目前某宝可以
PHP通过phpspreadsheet导入Excel日期,导入系统后,全部变为了4开头的几位数字,这是为什么呢?原因很简单,将Excel的时间设置问文本,我们就能看到该日期本来的数值,上图对应的数值为: 要怎么解决呢?进行数据转换就行,这里可以封装方法,或者用第三方的
mediatemple - can#39;t send email using codeigniter(mediatemple - 无法使用 codeigniter 发送电子邮件)
Laravel Gmail Configuration Error(Laravel Gmail 配置错误)
Problem with using PHPMailer for SMTP(将 PHPMailer 用于 SMTP 的问题)
Issue on how to setup SMTP using PHPMailer in GoDaddy server(关于如何在 GoDaddy 服务器中使用 PHPMailer 设置 SMTP 的问题)