0

我曾使用 call_user_func_array 并且在我的本地主机上脚本运行良好,但是当我在服务器上上传时它给了我 2 个错误,我不知道为什么.. 任何人都可以帮助我克服它。不胜感激。提前致谢

以下错误。

警告: call_user_func_array() 期望参数 1 是有效的回调,第一个数组成员不是有效的类名或对象

致命错误:未捕获的错误:在布尔值上调用成员函数 execute()

下面是与这些错误相关的一小部分代码

<?php 
      $location_title="";
      $num_of_rows="";
      if(isset($_POST['search_forsale'])){
        $query="SELECT * FROM sales WHERE id>0";
        $params = array();
        if(!empty($_POST['location'])){
          $location=trim("%{$_POST['location']}%");
          $location_title=$_POST['location'];
          $query.=" AND lower(location) LIKE ?";
          $params[]=$location;
        }
        if(!empty($_POST['min_price'])){
          $min_price=$_POST['min_price'];
          $query.=" AND price>=?";
          $params[]=$min_price;
        }
        if(!empty($_POST['max_price'])){
          $max_price=$_POST['max_price'];
          $query.=" AND price<=?";
          $params[]=$max_price;
        }
        if(!empty($_POST['category'])){
          $category=$_POST['category'];
          $query.=" AND category=?";
          $params[]=$category;
        }
        if(!empty($_POST['bedrooms'])){
          $bedrooms=$_POST['bedrooms'];
          $query.=" AND bedrooms=?";
          $params[]=$bedrooms;
        }
        if(!empty($_POST['sort_by'])){
          $sort_by=$_POST['sort_by'];
          $query.=" ORDER BY ?";
          $params[]=$sort_by;
        }
        if(!empty($_POST['title'])){
          $title=trim("%{$_POST['title']}%");
          $query.=" AND lower(title) LIKE ?";
          $params[]=$title;
        }

        $param_types = '';                        
        foreach($params as $param){        
          if(is_int($param)){
            $param_types .= 'i';          
          }elseif(is_float($param)){
            $param_types .= 'd';           
          }elseif(is_string($param)){
            $param_types .= 's';        
          }else{
            $param_types .= 'b';     
          }
        }
        array_unshift($params, $param_types);
        $connect=Connect_db();
        $stmt = $connect->stmt_init();

        function refValues($arr){
          if(strnatcmp(phpversion(),'5.3')>=0){
              $refs = array();
              foreach($arr as $key => $value)
                $refs[$key] = &$arr[$key];
              return $refs;
          }
          return $arr;
        }
        **$stmt=$connect->prepare($query);
        call_user_func_array(array($stmt,'bind_param'),refValues($params));
        $execute_query=$stmt->execute();
        $result=$stmt->get_result();
        $num_of_rows=$result->num_rows;**

粗体部分是错误行显示的主要代码

4

0 回答 0