致命错误:无法在C:\ xampp \中使用mysqli_result类型的对象作为数组

时间:2018-03-16 04:43:50

标签: php arrays mysqli

我正在使用核心php,实际上我从提交表单中获得了后期价值,我会在显示问题时将该变量传递给喜欢的查询:

  

致命错误:无法使用mysqli_result类型的对象作为数组   C:\ XAMPP

我不知道我做了什么错,请帮助我。

这是我的代码:

if(isset($_POST['list'])){ 
     //-----from post value----//
      $location_type =$_POST['list'];
      $arr = explode(' ',trim($location_type));
      $listing=$arr[0];
      $all_location ="select * from tbl_master_property where pg_address like '%$listing%'";
      $location_result=$conn->query($all_location);
      while($row=mysqli_fetch_assoc($location_result)){ 
      $location_result[] = $row['pg_address'];
      }
      echo "<pre>";print_r($location_result);die;
  } 

1 个答案:

答案 0 :(得分:0)

问题是您是否试图在$location_result循环中覆盖 mysqli_result变量 while()

您需要使用单独的数组变量来获取所有值。

如下所示(请仔细阅读代码内的注释): -

 if(isset($_POST['list'])){ 
      $location_type =$_POST['list'];

      $arr = explode(' ',trim($location_type));

      $listing=$arr[0];

      $all_location ="select * from tbl_master_property where pg_address like '%$listing%'";

      $all_location_result = [];//create an array variable
      $location_result=$conn->query($all_location);
      while($row=$location_result->fetch_assoc()){ // try not to mix oop way with procedural way, not a good practic
        $all_location_result[] = $row['pg_address']; // assign values to array variable
      }
      echo "<pre>";print_r($all_location_result);// print array variable
  }

注意: - 您SQL INJECTION的查询代码是开放式的,因此请尝试使用prepared statements

参考: -

mysqli::prepare

PDO::prepare