這個錯誤通常表示您在使用 MySQLi 執行多個查詢時,還沒有讀取完所有查詢結果,就嘗試運行了下一個查詢。
這通常發生在您使用 mysqli_multi_query() 函數執行多個查詢時,而且還沒有使用 mysqli_free_result() 函數釋放查詢結果。
以下是一些可能導致這個錯誤的原因和解決方法:
您正在嘗試同時執行多個查詢:如果您使用 mysqli_multi_query() 函數執行多個查詢,您需要使用 mysqli_store_result() 函數將結果保存到內存中,並使用 mysqli_free_result() 函數釋放結果,然後才能執行下一個查詢。例如:
請注意,在執行多個查詢時,您需要使用 mysqli_next_result() 函數切換到下一個結果集。$query = "SELECT * FROM table1; SELECT * FROM table2;"; if (mysqli_multi_query($conn, $query)) { do { if ($result = mysqli_store_result($conn)) { while ($row = mysqli_fetch_row($result)) { // 處理結果 } mysqli_free_result($result); } } while (mysqli_next_result($conn)); }- 您正在嘗試同時使用多個 mysqli_query() 函數:如果您在執行多個 mysqli_query() 函數而沒有使用 mysqli_free_result() 函數釋放結果,則可能會發生此錯誤。請確保您在執行下一個查詢之前釋放上一個查詢的結果,例如:
$result1 = mysqli_query($conn, "SELECT * FROM table1"); // 處理結果集 $result1 mysqli_free_result($result1); $result2 = mysqli_query($conn, "SELECT * FROM table2"); // 處理結果集 $result2 mysqli_free_result($result2);
如果您嘗試了以上解決方法但仍無法解決問題,請檢查您的 MySQLi 代碼,確保您釋放了所有查詢結果。如果問題仍然存在,請嘗試在查詢之間添加適當的延遲,並考慮優化查詢以減少查詢時間