首页 >后端开发 >php教程 >为什么我的 PHP 脚本抛出'mysqli::query(): MySQL 对象已关闭或无法获取 MySQL 错误”?

为什么我的 PHP 脚本抛出'mysqli::query(): MySQL 对象已关闭或无法获取 MySQL 错误”?

Barbara Streisand
Barbara Streisand原创
2024-12-16 22:18:14878浏览

Why is my PHP script throwing

mysqli::query(): MySQL 对象已关闭或无法获取 MySQL 错误

问题

执行PHP脚本时,遇到以下情况错误:

  • PHP 7: mysqli::query(): 无法在第 [line_number] 行的 [script_path] 中获取 MySQL
  • PHP 8: 未捕获错误:MySQL 对象已经存在close

解释

这些错误表明您的 PHP 脚本在 MySQL 连接对象关闭后尝试执行 MySQL 查询。

解决方案

确保您的 MySQL 连接对象之前仍然处于活动状态执行任何查询。

// Check if the MySQL connection is open
if ($mysqli->connect_error) {
    // Handle the connection error
} else {
    // Execute the query
    $result = $mysqli->query($query);
}

可能原因

  • 过早关闭连接:确保仅关闭 MySQL 连接所有查询执行完毕后。
  • 析构函数问题:如果仍有查询需要执行,请避免在类的析构函数(__destruct)方法中关闭MySQL连接。
  • 错误声明的连接变量:检查MySQL 连接变量(在本例中为 $mysqli)在整个过程中被正确声明和分配。 script.

附加说明

  • 在类 EventCalendar 提供的代码片段中,MySQL 连接在析构函数 (__destruct) 方法中关闭。如果调用析构函数后仍需要查询,这可能会成为问题。
  • 确保您使用正确的 PHP 版本和 MySQL 扩展。
  • 检查 MySQL 服务器日志是否有任何其他错误消息。

以上是为什么我的 PHP 脚本抛出'mysqli::query(): MySQL 对象已关闭或无法获取 MySQL 错误”?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn