我收到此错误,并且在我的生活中无法找出错误原因:
警告:mysqli :: query()期望参数1为字符串,对象在第34行的......中给出
导致
致命错误:在第36行的某个非对象上调用成员函数fetch_array()
这是我的代码
$products = $mysqli->real_escape_string($_GET['products']);
$query_cat = 'SELECT DISTINCT `Category` FROM `products` where `Type`="'. $products. '"'; //for cotegories
$cat_id = cat($query_cat);
这会生成一个字符串SELECT DISTINCT Category
FROM products
其中Type
=“面包店”(由echo确认)
这是有问题的功能
function cat($query_cat){
global $mysqli;
$result = $mysqli->query($query_cat); //line 34
$i='0';
while ($row = $result->fetch_array(MYSQLI_ASSOC)){
$i++;
$id[$i] = $row["Category"];
}
$result->close();
return $id;
}
然而这是有效的
function cat($query_cat){
global $mysqli; //echo $query_cat here will give correct query
$products = $mysqli->real_escape_string($_GET['products']);
$query_cat = 'SELECT DISTINCT `Category` FROM `products` where `Type`="'. $products. '"'; //for cotegories
$result = $mysqli->query($query_cat);
$i='1';
while ($row = $result->fetch_array(MYSQLI_ASSOC)){
$id[$i] = $row["Category"];
$i++;
}
$result->close();
return $id;
}
答案 0 :(得分:0)
我的代码中的其他地方有一个已解散的函数调用,不便之处