Warning: mysqli_num_fields() expects parameter 1 to be mysqli_result, boolean given in 解决办法

Warning: mysqli_num_fields() expects parameter 1 to be mysqli_result, boolean given in 解决办法

介绍

MySQLi是PHP语言连接MySQL数据库的第二代扩展库。在使用MySQLi函数时,有时会遇到提示“Warning: mysqli_num_fields() expects parameter 1 to be mysqli_result, boolean given in”的错误信息。

原因

这个错误信息通常是由查询语句出错或查询失败引起的。在执行查询语句时,如果出现错误,mysqli_query()函数会返回一个布尔值false,而不是查询结果。

解决办法

  1. 检查SQL语句是否正确。
  2. 
            $query = "SELECT * FROM `table_name` WHERE `column_name` = '$value'";
        

    在执行查询语句时,需要确认SQL语句是否正确。可以通过手动执行SQL语句来验证查询语句是否正确。在MySQL命令行或其它工具中,将SQL语句粘贴,并执行查询。

  3. 检查是否连接到数据库。
  4. 
            $link = mysqli_connect('localhost','user','password','database');
            if (!$link) {
                die('Could not connect: '.mysqli_error());
            }
            $query = "SELECT * FROM `table_name` WHERE `column_name` = '$value'";
            $result = mysqli_query($link, $query);
        

    如果没有连接到数据库,mysqli_query()函数也会返回布尔值false。

  5. 使用mysqli_error()函数查看错误信息。
  6. 
            $query = "SELECT * FROM `table_name` WHERE `column_name` = '$value'";
            $result = mysqli_query($link, $query);
            if (!$result) {
                die('Error: '.mysqli_error($link));
            }
        

    mysqli_error()函数可以用来获取最后一次MySQL操作的错误信息,可以帮助我们更快的找到问题所在。

  7. 加入返回结果判断。
  8. 
            $query = "SELECT * FROM `table_name` WHERE `column_name` = '$value'";
            $result = mysqli_query($link, $query);
            if ($result === false) {
                die('Error: '.mysqli_error($link));
            }
            if (mysqli_num_rows($result) > 0) {
                // ...
            }
        

    为了避免将错误提示当成查询结果进行操作,应该加入返回结果判断。在确认mysqli_query()函数返回非false值后,可以使用mysqli_num_rows()函数判断返回结果是否为空。

晓白博客网版权所有,原文地址https://www.xbnb.cn/5308
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容