php函数的封装mysqli_error报错,Expected type ‘mysqli‘. Found ‘false‘

今天在封装数据库判断的时候,出现了一个很头疼的错误:
我这样封装的函数,为什么会报错!!(环境版本PHP7.4 mysql8.0)
函数体里面的mysqli_error和mysqli_errno的参数处报错
报错内容是:Expected type ‘mysqli’. Found ‘false’.

function my_error($link, $sql)
{
    //执行SQL语句
    $query = mysqli_query($link, $sql);
 
    //判断
    if (!$query) {    
        echo 'SQL语法有错误!<br/>';
        echo '错误编码是:' . mysqli_errno($query) . '<br/>';
        //mysql获取到的错误信息默认是gbk编码
        echo '错误信息是:' . iconv('GBK', 'UTF-8', mysqli_error($query)) . '<br/>';
 
        exit;
    }
}

报错截图如下
到最后,向各路大佬请教,最后才发现,是参数传错了!!!
mysqli_errno()函数的用法
参数必须是一个$connection!!!
将参数更改之后 就可以了!
在这里插入图片描述

### 回答1: mysqli_fetch_array报错是指在使用mysqli_fetch_array函数时出现了错误。可能的原因包括: 1. 数据库连接失败:在使用mysqli_fetch_array函数之前,必须先建立与数据库的连接。如果连接失败,那么mysqli_fetch_array函数就无法正常工作。 2. SQL语句错误:如果SQL语句有误,那么mysqli_fetch_array函数也无法正常工作。在使用mysqli_fetch_array函数之前,必须先确保SQL语句正确无误。 3. 数据库查询结果为空:如果数据库查询结果为空,那么mysqli_fetch_array函数就无法正常工作。在使用mysqli_fetch_array函数之前,必须先确保数据库查询结果不为空。 4. PHP版本不兼容:如果PHP版本不兼容mysqli_fetch_array函数,那么就会出现报错。在使用mysqli_fetch_array函数之前,必须先确保PHP版本兼容。 以上是可能导致mysqli_fetch_array报错的原因,具体原因需要根据具体情况进行分析和排查。 ### 回答2: mysqli_fetch_array是一个PHP函数,用于从MySQL数据库中检索数据。其基本语法如下: mysqli_fetch_array(mysqli_result $result [, int $resulttype = MYSQLI_BOTH ]) 其中,$result参数是之前执行查询语句所返回的结果集,$resulttype确定返回结果数组中包含哪些元素。默认为MYSQLI_BOTH,即同时包含数值键和关联键。 在使用mysqli_fetch_array函数时,可能会出现以下几种错误情况: 1. Undefined variable: result 该错误提示说明$result参数没有被正确传递,可以检查一下查询语句是否执行成功时返回结果集。 2. mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given 该错误提示表示$result参数的数据类型不正确,应该是mysqli_result类型,但是实际上却是布尔值,通常情况下是因为查询语句执行失败导致。可以使用mysqli_error函数查看具体的错误信息。 3. mysqli_fetch_array() expects exactly 1 parameter, 2 given 该错误提示说明函数参数的个数不匹配,应该只有一个参数$result,但是实际上传递了2个参数,通常是因为$resulttype参数传递错误或者不需要设置该参数导致的。可以尝试不传递$resulttype参数或者传递正确的值。 4. Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given 该错误提示表示函数返回null,可能是查询语句没有返回结果集,或者结果集被释放或者已经被获取完毕了。可以使用mysqli_num_rows函数检查结果集中是否有数据。如果没有,将不会返回结果,需要使用mysqli_free_result函数手动释放结果集。 总之,在使用mysqli_fetch_array函数时,需要合理地传递参数,正确地处理返回结果,并及时释放结果集,才能保证代码的正确性和效率。 ### 回答3: mysqli_fetch_array是一个PHP语言中的函数,用于从MySQL数据库中查询数据并返回结果。在使用mysqli_fetch_array函数时,有时会出现一些报错。 常见的mysqli_fetch_array报错原因包括: 1. SQL语句有误:在查询语句中,SQL语句的语法错误和逻辑错误都可能导致mysqli_fetch_array报错。 2. 数据库连接错误:在使用mysqli_fetch_array之前,需要先建立与MySQL数据库的连接。如果连接没有建立成功,mysqli_fetch_array就会抛出相应的错误。 3. 查询结果为空:如果SQL语句正确,但是查询结果为空,也会导致mysqli_fetch_array报错。 针对这些错误,我们可以进行相应的排查和处理。 首先,需要检查SQL语句是否正确。可以使用PHPMyAdmin等工具来验证SQL语句是否正确执行。如果SQL语句正确,可以检查语句中的变量是否正确设置。 其次,需要检查数据库连接是否正确。可以通过调用mysqli_connect函数进行连接,并检查连接是否成功。如果连接不成功,可以检查连接参数、MySQL服务器是否开启等原因。 最后,如果SQL语句正确,数据库连接也成功建立,但查询结果为空,那么可以检查查询条件是否正确设置,或者在查询之前先查询一下数据表的内容是否与查询条件匹配。 综上所述,如果在使用mysqli_fetch_array时出现错误,可以先检查SQL语句、数据库连接以及查询条件等方面,来排查和解决错误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

逍遥创江湖

你的鼓励将是我创作最大的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值