PHP Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, array given in是什么原
原因是: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 用户自定义的警告(非致命性错误)。
PHP的mysqli_fetch_array()函数有两个参数。
第一个是由mysqli_query(),mysqli_store_result() 或 mysqli_use_result()返回的结果集标识。
第二个是设定当前行数据生成哪种类型的数组。此参数的范围是常量MYSQLI_ASSOC, MYSQLI_NUM或MYSQLI_BOTH。
根据报错信息,可以知道的是,你第一个参数传入的内容不对,所以导致报错。你传入的是数组,而它要求的是传入结果集。
下面是使用示例:
<?php
// 连接数据库
$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手册:网页链接
mysqli_fetch_array()这个函数需要内容才能输出,如果sql语句出错了,就没有内容了,就警告了