警告:mysqli_fetch_array()期望参数2为long,给定对象

时间:2017-03-02 12:18:01

标签: php mysql

搜索站点时会显示上面的警告消息。这是一个简单的搜索功能,它显示所有记录,将搜索词与表格中的字段相匹配。代码如下。

if(isset($_POST['submit'])){ 

$clean_search_word = mysqli_real_escape_string($con,$_POST['search_word']);

$sql = "SELECT * FROM webdir_user where user_category like '%$clean_search_word%'"; 

        $record = mysqli_query($con,$sql);
        if(!$record){
        die('Error in SQL:'.mysql_error());
          }
        else{
        while($result = mysqli_fetch_array($record,$con)){
        }   
    }

}

我找到了与我相同的问题的答案,但在大多数情况下,警告信息是由其他原因造成的,所以我无法找到任何帮助来找出导致问题的原因。有关如何解决的任何帮助或建议。谢谢。

2 个答案:

答案 0 :(得分:3)

$con中删除mysqli_fetch_array,它应该可以正常运行。此“功能”中只允许使用1个字符串。另一个($ con)是可选的,必须是整数。与MYSQLI_ASSOC

一样
if(isset($_POST['submit'])){ 

$clean_search_word = mysqli_real_escape_string($con,$_POST['search_word']);

$sql = "SELECT * FROM webdir_user where user_category like '%$clean_search_word%'"; 

    $record = mysqli_query($con,$sql);
    if(!$record){
    die('Error in SQL:'.mysql_error());
      }
    else{
    while($result = mysqli_fetch_array($record)){
    }   
}

}

答案 1 :(得分:2)

mysqli_fetch_array 取一个参数($ result) 另一个可选的是INTEGER(int $ resulttype = MYSQLI_BOTH)