Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Menyelesaikan \'Strict Standards: Menyelesaikan mysqli_next_result() Ralat\' dengan mysqli_multi_query?

Bagaimana untuk Menyelesaikan \'Strict Standards: Menyelesaikan mysqli_next_result() Ralat\' dengan mysqli_multi_query?

DDD
DDDasal
2024-11-28 06:29:15497semak imbas

How to Resolve the

Standard Ketat: Menyelesaikan ralat mysqli_next_result() dengan mysqli_multi_query

Memastikan penggunaan mysqli_multi_query yang betul adalah penting untuk mengelakkan penggunaan "Stric_multi_query" dengan betul Walaupun menghapuskan koma bertitik mungkin telah menghapuskan isu, ia tidak menyelesaikan masalah teras.

Untuk menangani mesej ralat, pertimbangkan cadangan berikut:

Memahami mysqli_next_result()

mysqli_next_result() memajukan penuding hasil ke seterusnya set hasil yang dihasilkan oleh mysqli_multi_query(). Walau bagaimanapun, pelaksanaannya memerlukan set hasil awal, yang tidak dijamin dalam semua kes.

Penyelesaian

Sertakan semakan berikut dalam gelung 'buat':

buat { if ($result = mysqli_store_result($db)) { // set hasil proses } } sambil (mysqli_more_results($db) && mysqli_next_result($db));

Sintaks Alternatif: WHILE{} Gelung

Sementara klasik "IF(){DO{} WHILE}" sintaks adalah sah, alternatif yang mudah dan lebih mudah dibaca ialah:

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))))

Pendekatan ini dengan jelas mentakrifkan syarat untuk melaksanakan gelung dan menyemak set hasil.

Snippet Komprehensif

Untuk penyelesaian yang komprehensif, pertimbangkan coretan berikut untuk mengendalikan pertanyaan dengan atau tanpa hasil set:

Klasik "JIKA(){DO{} WHILE}" Sintaks:

if (mysqli_multi_query($mysqli, implode(';', $queries))) {
    do {
        echo "<br><br>", key($queries), ": ", current($queries);  // display key:value @ pointer
        if ($result = mysqli_store_result($mysqli)) {   // if a result set
            while ($rows = mysqli_fetch_assoc($result)) {
                echo "<br>Col = {$rows["Col"]}";
            }
            mysqli_free_result($result);
        }
        echo "<br>Rows = ", mysqli_affected_rows($mysqli); // acts like num_rows on SELECTs
    } while (next($queries) && mysqli_more_results($mysqli) && mysqli_next_result($mysqli));
}
if ($mysqli_error = mysqli_error($mysqli)) {
    echo "<br><br>", key($queries), ": ", current($queries), "Syntax Error:<br>$mysqli_error";  // display array pointer key:value
}

Roda Dicipta Semula "WHILE{}" Sintaks:

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)))) {
    echo "<br><br>", key($queries), ": ", current($queries);  // display array pointer key:value
    if ($result = mysqli_store_result($mysqli)) {
        while ($rows = mysqli_fetch_assoc($result)) {
            echo "<br>Col = {$rows["Col"]}";
        }
        mysqli_free_result($result);
    }
    echo "<br>Rows = ", mysqli_affected_rows($mysqli); // acts like num_rows on SELECTs
}
if ($mysqli_error = mysqli_error($mysqli)) {
    echo "<br><br>", key($queries), ": ", current($queries), "Syntax Error:<br>$mysqli_error";  // display array pointer key:value
}

Coretan ini mengendalikan pertanyaan dengan atau tanpa hasil dengan berkesan menetapkan dan menyediakan pengendalian ralat terperinci untuk tujuan nyahpepijat.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan \'Strict Standards: Menyelesaikan mysqli_next_result() Ralat\' dengan mysqli_multi_query?. 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