首页 >后端开发 >php教程 >为什么 `mysqli_query()` 返回'警告:mysqli_query() 期望参数 1 为 MySQLi,给定 null”?

为什么 `mysqli_query()` 返回'警告:mysqli_query() 期望参数 1 为 MySQLi,给定 null”?

DDD
DDD原创
2024-12-18 17:12:11602浏览

Why Does `mysqli_query()` Return

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

在尝试创建自定义CMS,您遇到以下错误消息:

“警告:mysqli_query()期望参数 1 为 MySQLi,在“

错误原因

中给出的 null MySQLi 对象作为其第一个参数。但是,在 getPosts() 函数中,您传递的是 null 值而不是 MySQLi 对象。

解决方案

此问题的解决方案是确保$con MySQLi 对象在 getPosts() 函数的范围内。在您的代码中, $con 是在全局范围内定义的,但在函数内无法访问它。

将 MySQLi 对象作为依赖项传递

一种方法解决方法是将 MySQLi 对象作为依赖项传递给 getPosts() 函数。具体方法如下:

function getPosts(mysqli $con) {
    // etc
}

通过将 MySQLi 对象作为函数的参数,可以确保它在函数的作用域内可用,并且可以被 mysqli_query() 使用。

其他建议

除了解决范围问题之外,考虑实施以下建议:

  • 通过使用 mysqli_report() 设置错误报告选项来处理错误和连接失败。
  • 如果使用以下命令发生连接错误或查询错误,则停止脚本执行mysqli::error().

这是如何实现这些的示例建议:

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

if (!$con) {
    throw new Exception("Failed to connect to MySQL: " . mysqli_connect_error());
}

getPosts($con);

通过实施这些建议,您可以确保自定义 CMS 的稳健性和可靠性。

以上是为什么 `mysqli_query()` 返回'警告:mysqli_query() 期望参数 1 为 MySQLi,给定 null”?的详细内容。更多信息请关注PHP中文网其他相关文章!

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