在mysqli fetch循环中无法调用函数

时间:2013-09-22 02:22:41

标签: php mysqli

此代码无效。

$queryProduct = $mysqli->prepare("SELECT productID FROM products WHERE productCat=?");
$queryProduct->bind_param('i', $id);
$queryProduct->execute();
$queryProduct->bind_result($productID);
while ($queryProduct->fetch()) 
{
smallBlockProduct($productID);
}
$queryProduct->close();

这给了我错误“致命错误:在调用smallBlockProduct的行上的非对象上调用成员函数fetch_assoc()。

但是,如果我将函数smallBlockProduct更改为简单的echo $ productID;它将遍历所有正确的结果。

我不能在mysqli fetch循环中调用函数吗?或者有一种特殊的方式来调用函数吗?

编辑:

错误实际上是我正在调用的函数。该函数表示另一个查询。

function smallBlockProduct($productID)
   {    
    global $mysqli;

    $query = "SELECT productName FROM products WHERE productID='$productID'";
    $result = $mysqli->query($query);
    while ($row = $result->fetch_assoc())
        {
        $productName = $row['productName'];
        echo $productName.'<br>';
        }
    }

现在,我可以在另一个查询中执行不同的查询吗?

2 个答案:

答案 0 :(得分:2)

您似乎正试图在->fetch_assoc()上致电$productID,并将其传入smallBlockProduct()功能。

我建议检查函数中的$productID ..

function smallBlockProduct($productID){
    var_dump($productID);
...

答案 1 :(得分:2)

对此作出回应:现在,我是否可以在另一个查询中执行不同的查询?

您不能使用相同的数据库连接来执行第二个查询而不会丢失第一个查询。要运行第二个查询,您需要打开另一个连接。