လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Next_resulult () မခေါ်မီယခင်ရလဒ်ကိုရှင်းလင်းရန်သင်မေ့သွားလျှင်ဘာဖြစ်မည်နည်း။

Next_resulult () မခေါ်မီယခင်ရလဒ်ကိုရှင်းလင်းရန်သင်မေ့သွားလျှင်ဘာဖြစ်မည်နည်း။

gitbox 2025-05-02

Database Multi-query လုပ်ငန်းလည်ပတ်မှုအတွက် PHP ၏ MySQLI extension ကိုအသုံးပြုသောအခါ Next_result () သည်အရေးပါသောလုပ်ဆောင်ချက်ဖြစ်သည်။ ၎င်းကိုသိုလှောင်ထားသည့်လုပ်ထုံးလုပ်နည်းများအပြီးရလဒ်မျိုးစုံကိုလုပ်ဆောင်ရန် (သို့) SQL ထုတ်ပြန်ချက်များကိုတစ်ပြိုင်တည်းပေးပို့ရန်အသုံးပြုသည်။ သို့သော် developer များစွာသည် Next_result () ကို မခေါ်မီ (): နောက်တစ်ခုကိုမခေါ်မီ () မခေါ်ဆိုမီလေးနက်သောပြ problems နာများဖြစ်စေနိုင်သည်။

Multi- စုံစမ်းမှုစစ်ဆင်ရေးများ၏အခြေခံဖြစ်စဉ်ကို

MySQLI :: Multi_query () ကို အသုံးပြု. SQL ထုတ်ပြန်ချက်များကိုအကောင်အထည်ဖော်သည့်အခါကြေငြာချက်တစ်ခုစီသည်ရလဒ်ကိုပြန်လည်ရရှိနိုင်သည်။ လက်ရှိရလဒ်ကိုပြုလုပ်ရန် Store_Result () သို့မဟုတ် quer_result () ကို အသုံးပြုရန်လိုအပ်သည်။ ထို့နောက်နောက်ရလဒ်သို့ပြောင်းရွှေ့ရန် Next_result () ကို သုံးပါ။

 $mysqli = new mysqli("localhost", "user", "password", "database");

$sql = "SELECT * FROM users; SELECT * FROM products;";
if ($mysqli->multi_query($sql)) {
    do {
        if ($result = $mysqli->store_result()) {
            while ($row = $result->fetch_assoc()) {
                print_r($row);
            }
            $result->free(); // အလွန်အရေးကြီးသောခြေလှမ်း
        }
    } while ($mysqli->next_result());
}

လက်ရှိရလဒ်ကိုရှင်းလင်းရန်မေ့သွားလျှင်ဘာဖြစ်မည်နည်း။

1 ။ နောက်ဆက်တွဲရလဒ် set အပြောင်းအလဲနဲ့

MySQLI :: Next_Result () သည် လက်ရှိရလဒ်ကိုရှင်းလင်းခြင်းသို့မဟုတ်ထုတ်လွှတ်ခြင်းများပြုလုပ်ခဲ့သမျှကာလပတ်လုံးအလုပ်လုပ်သည်။ အကယ်. သင်သည် စတိုး () သို့မဟုတ် အခမဲ့ () အဆင့်များကိုကျော်သွားပါက Next_result () ကို ကျော်သွားပါကနောက်ရလဒ်နှင့် ပတ်သက်. မှန်ကန်စွာမရွေ့နိုင်ပါကနောက်ရလဒ်ရလဒ်များကြောင့်နောက်ဆက်တွဲစုံစမ်းမှုရလဒ်များပေါ်ပေါက်လာခြင်းမရှိပါ။

2 ။ "စည်းညှိခြင်းမှအမိန့်ထုတ်" အမှားများကိုဖြစ်ပေါ်စေသည်

ဤတွင်အသုံးအများဆုံးအမှားအယွင်းများ

 Commands out of sync; you can't run this command now

ဤအမှားဆိုသည်မှာသင်၏ရလဒ်အသစ်ကိုလုပ်ဆောင်ခြင်းသို့မဟုတ်လက်ရှိရလဒ်ကိုမလုပ်ဆောင်မီလာမည့်ရလဒ်ကိုရယူရန်ကြိုးစားခြင်းသို့မဟုတ်လာမည့်ရလဒ်ကိုရယူရန်ကြိုးစားခြင်းကဲ့သို့သော MySQL တွင်မှားယွင်းစွာလုပ်ဆောင်ခြင်းကိုမှားယွင်းစွာလုပ်ဆောင်နိုင်သည့်အမိန့်ဖြစ်သည်။

3 ။ အလားအလာရှိသောမှတ်ဉာဏ်ယိုစိမ့်မှု

PHP ၏အမှိုက်သရိုက်စုဆောင်းမှုယန္တရားသည်အရင်းအမြစ်များကိုအများအားဖြင့်အလိုအလျောက်လုပ်ဆောင်နိုင်သော်လည်းကြီးမားသောအချက်အလက်ပမာဏသို့မဟုတ်ရှည်လျားသောဆက်သွယ်မှုအခြေအနေများတွင်အများအား ဖြင့် အလိုအလျောက်ဖြစ်စေသည်။

ဤပြ problems နာများကိုမည်သို့ရှောင်ရှားနိုင်မည်နည်း။

  • Store_result () နှင့်အခမဲ့ () အခမဲ့ () အခမဲ့ () အခမဲ့ () ကိုအချိန်မီသတ်မှတ်ပါ။

  • ရလဒ်အလုံးအရင်းတစ်ခုချင်းစီကိုသန့်ရှင်းစွာလုပ်ဆောင်ရန်သေချာစေရန်ရှင်းလင်းသောကွင်းဆက်ဖွဲ့စည်းပုံကိုအသုံးပြုပါ။

  • ယုတ္တိလွဲချော်ခြင်းကိုရှောင်ရှားရန်ခြေလှမ်းတိုင်းအတွက်အမှားစစ်ဆေးမှုများကိုထည့်ပါ။

 if ($mysqli->multi_query($sql)) {
    do {
        if ($result = $mysqli->store_result()) {
            // အပြောင်းအလဲများရလဒ်များ
            $result->free();
        } else {
            if ($mysqli->errno) {
                echo "စုံစမ်းမှုမအောင်မြင်ပါ: " . $mysqli->error . "<br>";
            }
        }
    } while ($mysqli->more_results() && $mysqli->next_result());
}

ကောက်ချက်

Multi_query () နှင့် နောက်ဆက်တွဲ) ကို အသုံးပြုသောအခါသတိရပါ။ နောက်ဆုံးတွင်ရလဒ်ကိုပြန်လည်လုပ်ဆောင်ပါ။ နောက်တစ်ခုကိုမတောင်းဆိုမီဒေတာဘေ့စ်နှင့်ကောင်းစွာဆက်ဆံရန်အခြေခံလောကဝတ်သည်သင့်အတွက်အခြေခံလောကဝတ်ဖြစ်သည်။ ဒီလိုမှမဟုတ်ရင် Gitbox.net မှာ bug တင်ထားတဲ့စနစ်မှာအမှားအယွင်းများအမှားအယွင်းများစွာအမှားအယွင်းများကိုသင်တွေ့ရလိမ့်မည်။