【问题标题】:MySQLi - property access is not allowed yet [duplicate]MySQLi - 尚不允许属性访问[重复]
【发布时间】:2015-05-06 09:03:34
【问题描述】:

我在尝试关闭 mysqli 连接时收到此警告“还不允许访问属性”。为什么?

$mysqli = new mysqli ( $database ["dbUri"], $database ["dbUserName"], $database ["dbPassword"], $database ["dbSchema"], $database ["dbPort"] );
$mysqli->autocommit(FALSE);
$con = $mysqli;
$rowsAffected = /* completes insert using $con */;
if ($rowsAffected==0) {
    throw new Exception("Insert of new record failed");
}
$insertId = $con->insert_id;
$con->commit();
$con->close();

顺便说一句,插入成功,并且我在 $insertId 中有正确的值。提交也很有效,但触发警告的是关闭。

我将代码隐藏在/* completes insert using $con */ 部分,因为它很长且无关紧要(sql 有效)。所以除非你认为它是相关的,否则我只包括其余部分。

我查看了类似的问题,但其他帖子提到连接未建立。但是,我的连接有效。请参阅“插入成功”的要点。

【问题讨论】:

  • @Rikesh,我已阅读其他内容,但不知道它在这种情况下如何应用。我的连接成功,我能够插入行...

标签: php mysqli warnings


【解决方案1】:

就我对这个间歇性问题的分析得出结论(至少在我的情况下),这是 mysqli 扩展或 PHP 调试器 (XDebug) 中的某种错误,因为它仅在我断点/单时发生- 单步执行程序,但不是在页面渲染完成之前简单地运行相同的代码而没有断点/单步执行任何代码时。

如果您在页面渲染完成之前没有断点或单步执行任何代码,是否还会发生这种情况?

【讨论】: