'解決Commands out of sync; you can't run this command now錯誤'

Sync MySQL PHP SQL 明州來客 2019-07-18
"

PHP程序中使用mysql_query調用存儲過程(call procedure()),然後在執行下一個查詢的時候,一直出現 Commands out of sync; you can't run this command now 這個錯誤,即使在每個query後執行 mysql_free_result($result) ,錯誤還是依然出現,估計是調用存儲過程的時候就query了兩次(後來查明是mysql_store_result的query來回了兩次),一次是查詢的狀態,一次是查詢的結果集,所以才會不斷的出現這個錯誤,而且PHP本身規定mysql_store_result的query(這個是默認的)一定要把下一個結果集讀取出來才行,否則就會報上面一個錯誤,基於以上的原因分析,大概可以想到解決的方法了,在query前進行一次mysql_next_result操作,即可完美解決問題。

後來程序改用了mysqli(mysql的加強版,支持面向對象操作),在mysqli_query前,先執行一次mysqli_next_result。

例如:

mysqli_next_result($this->link);

mysqli_query($this->link, $sql);

之後就可以可以正常操作結果集了.

"