[英]Can not call a function while in a mysqli fetch loop
此代碼不起作用。
$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提取循環中調用函數嗎? 還是有一種特殊的方法來調用函數?
編輯:
錯誤實際上在我正在調用的函數上。 該函數執行另一個查詢。
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>';
}
}
所以現在,我是否可以在另一個查詢中執行另一個查詢?
似乎您要在傳遞給smallBlockProduct()
函數的$productID
上調用->fetch_assoc()
。
我建議檢查一下$productID
在函數中。
function smallBlockProduct($productID){
var_dump($productID);
...
對此的回應: 現在,我是否可以在已經處於另一個查詢中時執行另一個查詢?
您不能使用同一數據庫連接來執行第二個查詢,而不會丟失第一個查詢。 要運行第二個查詢,您將需要打開另一個連接。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.