PHP Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, array given in是什么原

2025-04-13 22:02:00
推荐回答(4个)
回答1:

原因是:sql语句出错,你直接执行以下sql语句,就知道有地方出现错误了,
mysqli_fetch_array()这个函数需要内容才能输出,如果sql语句出错了,就没有内容了,就出现警告了。

PHP显示严重的错误主要有:

1、1E_ERROR 致命的运行时错误。

2、2E_WARNING 运行时警告(非致命性错误)。

3、E_PARSE 编译时解析错误。

4、8 E_NOTICE 运行时提醒(经常是bug,也可能是有意的)。

5、16 E_CORE_ERROR PHP启动时初始化过程中的致命错误。

6、32 E_CORE_WARNING PHP启动时初始化过程中的警告(非致命性错)。

7、64 E_COMPILE_ERROR 编译时致命性错。

8、128 E_COMPILE_WARNING 编译时警告(非致命性错)。

9、256 E_USER_ERROR 用户自定义的致命错误。

10、512 E_USER_WARNING 用户自定义的警告(非致命性错误)。

回答2:

PHP的mysqli_fetch_array()函数有两个参数。

第一个是由mysqli_query(),mysqli_store_result() 或 mysqli_use_result()返回的结果集标识。

第二个是设定当前行数据生成哪种类型的数组。此参数的范围是常量MYSQLI_ASSOC, MYSQLI_NUM或MYSQLI_BOTH。

根据报错信息,可以知道的是,你第一个参数传入的内容不对,所以导致报错。你传入的是数组,而它要求的是传入结果集。

下面是使用示例:

// 连接数据库
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

// 检查是否有连接错误
if (mysqli_connect_errno()) {
    printf("连接数据库失败: %s\n", mysqli_connect_error());
    exit();
}

// SQL语句
$query = "SELECT Name, CountryCode FROM City ORDER by ID LIMIT 3";
// 执行SQL查询,返回的结果集赋值给$result
$result = mysqli_query($link, $query);

// 判断结果集是否为空
if (0 == mysqli_num_rows($result)) {
    exit("没有符合条件的数据");
}

// 获取结果集中的第一行
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);

// 输出内容
printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);

如需了解更多资料,请参阅PHP手册:网页链接

回答3:

结果需要一个布尔值参数,你传进去一个数组

回答4:

sql语句出错,你直接执行以下sql语句,就知道有地方出现错误了,
mysqli_fetch_array()这个函数需要内容才能输出,如果sql语句出错了,就没有内容了,就警告了