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

2023-03-06php开发问题
1

本文介绍了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 断点后关闭语句导致很多警告的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

The End

相关推荐

PHP实现DeepL翻译API调用
DeepL的翻译效果还是很强大的,如果我们要用php实现DeepL翻译调用,该怎么办呢?以下是代码示例,希望能够帮到需要的朋友。 在这里需要注意,这个DeepL的账户和api申请比较难,不支持中国大陆申请,需要拥有香港或者海外信用卡才行,没账号的话,目前某宝可以...
2025-08-20 php开发问题
168

PHP通过phpspreadsheet导入Excel日期数据处理方法
PHP通过phpspreadsheet导入Excel日期,导入系统后,全部变为了4开头的几位数字,这是为什么呢?原因很简单,将Excel的时间设置问文本,我们就能看到该日期本来的数值,上图对应的数值为: 要怎么解决呢?进行数据转换就行,这里可以封装方法,或者用第三方的...
2024-10-23 php开发问题
287

mediatemple - 无法使用 codeigniter 发送电子邮件
mediatemple - can#39;t send email using codeigniter(mediatemple - 无法使用 codeigniter 发送电子邮件)...
2024-08-23 php开发问题
11

Laravel Gmail 配置错误
Laravel Gmail Configuration Error(Laravel Gmail 配置错误)...
2024-08-23 php开发问题
16

将 PHPMailer 用于 SMTP 的问题
Problem with using PHPMailer for SMTP(将 PHPMailer 用于 SMTP 的问题)...
2024-08-23 php开发问题
4

关于如何在 GoDaddy 服务器中使用 PHPMailer 设置 SMTP 的问题
Issue on how to setup SMTP using PHPMailer in GoDaddy server(关于如何在 GoDaddy 服务器中使用 PHPMailer 设置 SMTP 的问题)...
2024-08-23 php开发问题
17