Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana Mengendalikan Ralat `mysqli_next_result()` dengan betul dalam `mysqli_multi_query()` PHP?

Bagaimana Mengendalikan Ralat `mysqli_next_result()` dengan betul dalam `mysqli_multi_query()` PHP?

DDD
DDDasal
2024-12-07 15:50:13918semak imbas

How to Properly Handle `mysqli_next_result()` Errors in PHP's `mysqli_multi_query()`?

Standard Tegas: mysqli_next_result() Ralat dengan mysqli_multi_query

Dalam kod PHP yang disediakan, percubaan untuk menggunakan mysqli_multi_query() pertanyaan dalam satu panggilan pangkalan data mencetuskan piawaian yang ketat ralat:

mysqli_next_result(): There is no next result set. Please, call mysqli_more_results()/mysqli::more_results() to check whether to call this function/method

Untuk menyelesaikan ralat ini, penyelesaian berikut ditawarkan:

do {} while (mysqli_more_results($db) && mysqli_next_result($db));

Pengubahsuaian ini memastikan mysqli_more_results() disemak sebelum menggunakan mysqli_next_result(). Selain itu, memandangkan tiada set hasil dikembalikan dalam kod yang disediakan, menyemak mysqli_affected_rows() dan bukannya keluar bersyarat mungkin merupakan pendekatan yang lebih baik.

Penyelesaian yang lebih komprehensif yang mengendalikan pertanyaan dengan atau tanpa set hasil menggunakan mysqli_multi_query() ialah disediakan:

if (mysqli_multi_query($mysqli, implode(';', $queries))) {
    do {
        if ($result = mysqli_store_result($mysqli)) {
            // Process result set
        }
    } while (next($queries) && mysqli_more_results($mysqli) && mysqli_next_result($mysqli));
}

if ($mysqli_error = mysqli_error($mysqli)) {
    // Handle error
}

Sebagai alternatif, versi "cipta semula" coretan menggunakan gelung sementara dibentangkan:

while ((isset($multi_query) && (next($queries) && mysqli_more_results($mysqli) && mysqli_next_result($mysqli))) || (!isset($multi_query) && $multi_query = mysqli_multi_query($mysqli, implode(';', $queries)))) {
    // Process query
}

if ($mysqli_error = mysqli_error($mysqli)) {
    // Handle error
}

Coretan ini menyediakan mekanisme yang teguh untuk mengendalikan berbilang pertanyaan dan set hasil, menjadikannya sesuai untuk rangkaian senario yang lebih luas.

Atas ialah kandungan terperinci Bagaimana Mengendalikan Ralat `mysqli_next_result()` dengan betul dalam `mysqli_multi_query()` PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn