2013-08-26 60 views
1

MySQL Error: Commands out of sync; you can't run this command nowMySQL錯誤:命令不同步;您現在無法運行此命令

當我每次嘗試執行多個SQL過程時,出現上述錯誤。

我發現它與「存儲結果」有關,所以我一直試圖弄清楚一段時間,但我還沒有成功。

這是我的PHP代碼:

$query = "CALL GetObjectsValue(".$FormID.")"; 

if($res = $mysqli->query($query)) 
{ 
    $mysqli->store_result(); 

    while ($row = $res->fetch_assoc()) 
    { 

     ... 

    } 
    $res->free(); 
} 
+0

試試這個http://stackoverflow.com/a/32837401/2096041 –

回答

-1

變化

$query = "CALL GetObjectsValue(".$FormID.")";  

$query = "CALL GetObjectsValue("$FormID")"; 

通知的$FormID不點。

+2

的點是字符串連接在PHP中 - 他們是必要的 – Izkata

+0

你的例子會導致語法錯誤,因爲點是連接操作 – webdevbyjoss

0

由於某些原因,對於存儲過程的記錄集,必須使用next_result()命令循環訪問它。如果記錄集直接通過執行SQL查詢(SELECT),則情況並非如此。

$query="CALL GetObjectsValue($FormID)"; 
if($res=$mysqli->query($query)) 
{ 
    do 
    { 
    $row = $res->fetch_assoc() 
    ... 
    } 
    while($mysqli->next_result()); //loop through recordset 

    $res->free(); 
} 
相關問題