错误消息“mysqli::query(): Couldn't fetch” mysqli in 第 43 行”表示与 MySQL 的连接问题
提到的代码段包括一个连接文件(“inc_LadleDB.php”)和一个与数据库交互的类(“EventCalendar”)。相关代码如下:
// Connection file $DBConnect = @new mysqli("localhost", "root@localhost", NULL, "Ladle"); // Class constructor function __construct() { include("inc_LadleDB.php"); $this->DBConnect = $DBConnect; } // Class destructor function __destruct() { if (!$this->DBConnect->connect_error) { $this->DBConnect->close(); } }
由于数据库连接过早关闭而导致错误,特别是在析构函数“__destruct()”中。当对象被销毁时,它会关闭数据库连接,但后续查询继续尝试执行,从而导致错误。
要解决该问题,请确保在执行所有查询期间,数据库连接保持打开状态。一种可能的解决方案是从析构函数中删除“close()”语句。请考虑以下修改:
// Class destructor function __destruct() { // Do not close the connection here }
请记住,当对象被销毁时,会自动调用“__destruct()”方法,因此如果其他情况下关闭那里的连接可能会导致错误查询或数据库操作仍在执行。
以上是为什么我的 MySQLi 代码抛出'mysqli::query(): Couldn't fetch mysqli”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!