mysqli :: query()期望参数1为字符串

时间:2012-07-13 16:58:58

标签: php string mysqli

我收到此错误,并且在我的生活中无法找出错误原因:

  

警告: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;
}

1 个答案:

答案 0 :(得分:0)

我的代码中的其他地方有一个已解散的函数调用,不便之处