首页 >后端开发 >php教程 >为什么我的'mysqli_query()”函数收到空值而不是 MySQLi 连接对象?

为什么我的'mysqli_query()”函数收到空值而不是 MySQLi 连接对象?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-28 00:26:10828浏览

Why Does My `mysqli_query()` Function Receive a Null Value Instead of a MySQLi Connection Object?

理解“警告:mysqli_query() 期望参数 1 为 mysqli,在”中给出 null

在您创建自定义 CMS 的过程中,您可能遇到过可怕的错误消息:“警告:mysqli_query() 需要参数 1为 MySQLi,其中给出 null。”这个令人沮丧的问题通常是由于对 PHP 函数中变量范围的误解而引起的。

错误原因

该错误表明您的 getPosts() 函数正在尝试访问 $con 变量,该变量存储 MySQLi 连接对象,但在该函数的范围内无法访问它。这是因为 $con 是在 getPosts() 函数之外定义的。

解决方案:将连接作为依赖项传递

要解决此问题,您需要传递连接对象作为 getPosts() 函数的依赖项。通过这样做,该函数可以访问连接并执行必要的数据库操作。

function getPosts(mysqli $con) {
    // Code to query the database using $con
}

防止进一步的错误

为了最大限度地减少潜在问题,请考虑使用以下内容处理连接错误并抛出异常的代码:

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); // throw exceptions
$con = mysqli_connect("localhost", "xxxx", "xxxx", "xxxxx");

getPosts($con);

其他提示

  • 直接使用mysqli对象:避免使用mysqli_query()并直接选择mysqli对象的方法,例如$con->query()。
  • 处理异常:记住要处理由mysqli 对象使用 try...catch 块来提供有意义的错误消息。
  • 处理连接: 完成连接后,使用 $con->close 将其关闭() 方法释放资源。

以上是为什么我的'mysqli_query()”函数收到空值而不是 MySQLi 连接对象?的详细内容。更多信息请关注PHP中文网其他相关文章!

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