Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Menyelesaikan \'Strict Standards: mysqli_next_result() ralat 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:
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!