我曾使用 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;**
粗体部分是错误行显示的主要代码