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

Bagaimana untuk Membetulkan \'Strict Standards: mysqli_next_result() Error\' dengan mysqli_multi_query()?

DDD
Lepaskan: 2024-11-29 05:39:17
asal
1074 orang telah melayarinya

How to Fix

Standard Ketat: mysqli_next_result() Ralat dengan mysqli_multi_query

Isu:

Urusan saya>

Penyelesaian:

Untuk menyelesaikan isu ini, gunakan kod berikut:

do{} while(mysqli_more_results($db) && mysqli_next_result($db));
Salin selepas log masuk

Penjelasan:

Ralat Standard Ketat berlaku kerana mysqli_more_results() mesti dipanggil untuk menyemak sama ada mysqli_next_result() harus digunakan. Coretan kod yang disediakan memastikan mysqli_next_result() hanya dipanggil jika terdapat set hasil lain.

Pertimbangan:

    Dalam contoh yang disediakan, hanya INSERT pertanyaan sedang dilaksanakan, yang tidak mengembalikan set hasil. Oleh itu, gelung tidak akan dilaksanakan dan ralat tidak akan berlaku.
  • Jika pertanyaan anda termasuk penyataan SELECT atau operasi lain yang mengembalikan set hasil, penyelesaian yang disediakan akan menghalang mesej ralat daripada muncul.
  • Coretan kod yang diubah suai menggunakan gelung do-while, yang merupakan ujian pasca dan tidak memerlukan rehat bersyarat atau keluar dalam gelung.

Penambahan:

Untuk pendekatan yang lebih mantap, pertimbangkan coretan kod berikut:

if(mysqli_multi_query($db,$querystring)){
    do{
        $cumulative_rows+=mysqli_affected_rows($db);
    } while(mysqli_more_results($db) && mysqli_next_result($db));
}
if($error_mess=mysqli_error($db)){echo "Error: $error_mess";}
echo "Cumulative Affected Rows: $cumulative_rows";
Salin selepas log masuk
Coretan kod ini:

    Mengira baris yang terjejas daripada INSERT, KEMASKINI atau PADAM pertanyaan.
  • Memaparkan baris terkumpul terjejas.
  • Menyemak ralat dan menyediakan mesej ralat yang bermaklumat.

Nota Tambahan:

Untuk pengguna yang tidak dikenali mysqli_multi_query(), berikut ialah coretan kod serba boleh yang mengendalikan pertanyaan dengan atau tanpa set hasil:

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
}
Salin selepas log masuk
Coretan kod ini:

    Berfungsi untuk semua jenis pertanyaan, termasuk SELECT , Sisipkan, KEMASKINI dan PADAM.
  • Menyediakan output terperinci, termasuk pertanyaan itu sendiri, nilai baris atau lajur yang terjejas dan kemungkinan ralat.
  • Boleh diubah suai dengan mudah untuk keperluan khusus atau struktur pangkalan data.

Atas ialah kandungan terperinci Bagaimana untuk Membetulkan \'Strict Standards: mysqli_next_result() Error\' dengan mysqli_multi_query()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan