📌  相关文章
📜  警告:mysqli_fetch_all() 期望参数 1 为 mysqli_result,布尔值在第 11 行的 C:\newxammp\htdocs\learn\index.php 中给出 - PHP (1)

📅  最后修改于: 2023-12-03 15:41:36.063000             🧑  作者: Mango

PHP警告:mysqli_fetch_all() 期望参数 1 为 mysqli_result,布尔值在第 11 行的 C:\newxammp\htdocs\learn\index.php 中给出

当您在使用mysqli_fetch_all()函数时,如果函数的第一个参数不是mysqli_result类型,则会触发该警告。

这通常是由于以下原因之一导致的:

  • 没有正确的连接到数据库。
  • 没有正确的SQL查询语句。
  • 查询出错,导致结果不是mysqli_result类型。

要解决该问题,您可以尝试以下几个步骤:

  1. 确认已正确连接到数据库

请检查您的代码,确保已正确连接到数据库。如果您使用面向对象的mysqli连接方式,请确保您已经实例化了mysqli对象,并且已正确调用了connect()方法。

  1. 确认已正确的SQL查询语句

请检查您的代码,并确认您已正确编写了SQL查询语句。如果您使用了变量,请确保变量已使用mysqli_real_escape_string()函数进行过滤。

  1. 确认查询结果不为空

请检查您的SQL查询语句,并确认您的查询语句可以返回结果。如果查询结果为空,则mysqli_fetch_all()函数将返回false,导致该警告。

以下是一些示例代码,可帮助您避免此问题:

// 连接到数据库
$conn = new mysqli('localhost', 'username', 'password', 'database_name');

// 检查连接是否成功
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

// 编写SQL查询语句并执行
$sql = "SELECT first_name, last_name FROM users";
$result = mysqli_query($conn, $sql);

// 检查查询是否成功
if (!$result) {
    die("Query failed: " . mysqli_error($conn));
}

// 确认查询结果不为空
if (mysqli_num_rows($result) > 0) {
    // 获取所有查询结果
    $rows = mysqli_fetch_all($result, MYSQLI_ASSOC);
}

// 关闭数据库连接
mysqli_close($conn);

以上代码将确保您正确连接到数据库,并执行正确的SQL查询语句。如果查询结果为空,mysqli_fetch_all()函数将不会被调用,避免了此警告的发生。

请注意:在MySQLi中,如果您要使用mysqli_fetch_all()函数,请确保开启了mysqlnd扩展,否则该函数将无法正常运行。

希望上述建议能帮助您解决此问题。