【发布时间】:2013-09-22 02:22:40
【问题描述】:
这段代码不起作用。
$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>';
}
}
那么现在,我不能在另一个查询中执行不同的查询吗?
【问题讨论】:
-
参数“我”不存在。你需要传递数字参数。像这样:
$queryProduct->bind_param(1, $id);