簡體   English   中英

在mysqli提取循環中無法調用函數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM