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

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

Patricia Arquette
Patricia Arquetteasal
2024-12-24 05:41:17665semak imbas

How to Resolve

Standard Tegas: Menyelesaikan ralat "mysqli_next_result() dengan mysqli_multi_query"

Masalah:

Apabila pengguna menggunakan mysqli_multi_query menghadapi "Ketat Standards" ralat yang berkaitan dengan mysqli_next_result(). Ralat ini menunjukkan bahawa tiada hasil seterusnya ditetapkan untuk diproses.

Respons Awal:

Satu respons cuba membetulkan isu dengan mengubah suai $querystring tetapi tidak menangani punca ralat Standard Ketat. Respons lain dinasihatkan menukar struktur gelung daripada "DO WHILE" kepada "WHILE", yang tidak diperlukan.

Penyelesaian Sebenar:

Untuk menyelesaikan ralat, ubah suai kod seperti berikut:

do {
    if ($result = mysqli_store_result($db)) {
        // Process result set
    }
} while (mysqli_more_results($db) && mysqli_next_result($db));

Ini memastikan bahawa keadaan gelung akan dipenuhi hanya apabila terdapat lebih banyak set hasil untuk diproses, menghalang ralat.

Pertimbangan Tambahan:

  • Dalam contoh yang disediakan, pertanyaan INSERT dilaksanakan, yang tidak menghasilkan set hasil. Oleh itu, gelung tidak akan dilaksanakan dalam kes ini. Pertimbangkan untuk menggunakan mysqli_affected_rows() untuk mendapatkan semula bilangan baris yang terjejas.
  • Untuk penyelesaian yang lengkap, adalah dinasihatkan untuk memasukkan pengendalian ralat untuk memaparkan ralat jika berlaku.

Dipertingkatkan Coretan:

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

Kesimpulan:

Ralat "Strict Standards: mysqli_next_result(): Tiada set hasil seterusnya" diselesaikan dengan menggunakan mysqli_more_results () untuk menyemak kehadiran set hasil tambahan. Coretan yang dipertingkatkan mengendalikan kedua-dua hasil positif dan negatif bagi operasi mysqli_multi_query dan mysqli_store_result.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan 'Strict Standards: 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