Problem:
When using mysqli_multi_query, users may encounter a "Strict Standards" error related to mysqli_next_result(). This error indicates that there is no next result set to process.
Initial Response:
One response attempted to correct the issue by modifying the $querystring but did not address the root cause of the Strict Standards error. Another response advised changing the loop structure from "DO WHILE" to "WHILE", which is unnecessary.
Actual Solution:
To resolve the error, modify the code as follows:
do { if ($result = mysqli_store_result($db)) { // Process result set } } while (mysqli_more_results($db) && mysqli_next_result($db));
This ensures that the condition of the loop will be met only when there are more result sets to process, preventing the error.
Additional Considerations:
Enhanced Snippet:
if (mysqli_multi_query($db, $querystring)) { do { if ($result = mysqli_store_result($db)) { // Process result set mysqli_free_result($result); } else if (mysqli_error($db)) { echo "Error: " . mysqli_error($db); break; } } while (mysqli_more_results($db) && mysqli_next_result($db)); }
Conclusion:
The error "Strict Standards: mysqli_next_result(): There is no next result set" is resolved by using mysqli_more_results() to check for the presence of additional result sets. The enhanced snippet handles both positive and negative outcomes of the mysqli_multi_query and mysqli_store_result operations.
The above is the detailed content of How to Resolve 'Strict Standards: mysqli_next_result() error with mysqli_multi_query'?. For more information, please follow other related articles on the PHP Chinese website!