Home >Backend Development >PHP Tutorial >How to Resolve \'Strict Standards: mysqli_next_result() error with mysqli_multi_query\'?

How to Resolve \'Strict Standards: mysqli_next_result() error with mysqli_multi_query\'?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-24 05:41:17668browse

How to Resolve

Strict Standards: Resolving "mysqli_next_result() error with mysqli_multi_query"

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:

  • In the provided example, INSERT queries are executed, which do not produce result sets. Hence, the loop will not execute in this case. Consider using mysqli_affected_rows() to retrieve the number of affected rows instead.
  • For a complete solution, it is advisable to include error handling to display errors if any occur.

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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn