2016-04-24 83 views
0

我一直在試圖弄清楚現在好一陣子,並且我已經搜索了類似的問題,但無法真正找到解決方案。準備好的聲明內部連接無法通過參考傳遞參數

我正在製作遊戲設置應用程序,我遇到了一個準備好的聲明問題。

if ($stmt = $connection->prepare("SELECT pack.id, COUNT(race.name) 
            FROM pack 
            INNER JOIN race ON pack.id = race.pack 
            WHERE pack.id = ? 
            GROUP BY race.pack")) { 

    $stmt->bind_param("s", $_SESSION["id"]); 
    $stmt->execute(); 
    $stmt->bind_result($rsltID, rsltRaces); 

    while ($stmt->fetch()) { 
     $racesPack[$rsltID] = $rsltRaces; 
    } 

    $stmt->close(); 
} 

這將返回一個錯誤:「致命錯誤:無法通過引用傳遞參數2」。

任何幫助/意見將不勝感激!

+0

你可以嘗試用'$ sid = $ _SESSION [「id」]替換'$ stmt-> bind_param(「s」,$ _SESSION [「id」]);'' $ stmt-> bind_param(「s」,$ sid);'? – Chris

+3

你在第4行有一個錯誤,在變量前面有一個缺失的$。它會假設它是一個不能被ref傳遞的常量。 – temporalslide

+0

@temporallide你已經想通了我的問題......我剛剛得出這個結論,並且去了這裏發帖。非常感謝你! –

回答

0

您的$stmt->bind_result($rsltID, rsltRaces);是錯誤的。它應該是$stmt->bind_result($rsltID, $rsltRaces);