လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Multi-Revi-Revi-Revi-Revi-Revi-Resultsult () ကိုခေါ်ဆိုခြင်း၏အန္တရာယ်

Multi-Revi-Revi-Revi-Revi-Revi-Resultsult () ကိုခေါ်ဆိုခြင်း၏အန္တရာယ်

gitbox 2025-05-02

MySQL databases များကို php ကိုအသုံးပြုသောအခါ developer များသည် MySQLI extensions များကိုအထူးသဖြင့်သိမ်းဆည်းထားသောမေးမြန်းချက်များကိုကိုင်တွယ်ဖြေရှင်းရန်အတွက် MySQLI extension များကိုသုံးနိုင်သည်။ ဤလုပ်ဆောင်မှုသည်ရလဒ်မျိုးစုံ (ဥပမာ - ရွေးချယ် ထားသောလုပ်ထုံးလုပ်နည်းများကိုထုတ်ယူခြင်းကဲ့သို့သောရလဒ်များ) တွင်ရလဒ်များစွာတွင်ရလဒ်များစွာဖြင့်ပြန်လည်ပြုပြင်ခြင်းအတွက်အသုံးပြုသည်

သို့သော် လာမည့် _result () ကို ရလဒ်အစုအဝေးမရှိဘဲခေါ်ဆိုခြင်းသည်အန္တရာယ်များသည်။

Next_Result () ၏အခန်းကဏ် the

သငျသညျအောက်ပါကဲ့သို့သော SQL execute အခါ -

 CALL get_user_and_orders(1);

ဤသိုလှောင်ထားသောလုပ်ထုံးလုပ်နည်းသည်ရလဒ်နှစ်ခုကိုပြန်ပို့နိုင်သည်။

  1. ပထမ ဦး ဆုံးအသုံးပြုသူသတင်းအချက်အလက်ဖြစ်ပါတယ်,

  2. ဒုတိယကတော့သုံးစွဲသူရဲ့အမိန့်သတင်းအချက်အလက်ဖြစ်တယ်။

ဤရလဒ်နှစ်ခုကိုမှန်ကန်စွာရရန်ဤအရာကိုသင်ကိုင်တွယ်ရန်လိုအပ်သည်။

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

if ($mysqli->multi_query("CALL get_user_and_orders(1)")) {
    do {
        if ($result = $mysqli->store_result()) {
            while ($row = $result->fetch_assoc()) {
                print_r($row);
            }
            $result->free();
        }
    } while ($mysqli->next_result());
}

ဒီနေရာမှာ Next_result () က အဓိပ္ပာယ်ရှိတယ် - နောက်ရလဒ်ကိုဖတ်ဖို့ကြိုးစားလိမ့်မယ်။

ရလဒ်အမစုံကိုမရှိတော့တဲ့အချိန်မှာဘာဖြစ်သွားမလဲ။

အကယ်. သင်သည် SQL သည်သင်ကွပ်မျက်ခံရသည့်ရလဒ်များကိုရိုးရိုးရှင်းရှင်းရှာဖွေမှုကဲ့သို့သောရလဒ်မျိုးစုံကိုမပြန်ပါ။

 $mysqli->multi_query("SELECT * FROM users WHERE id = 1");

ယခုအချိန်တွင်သင်သည် Next_Result () ဟုခေါ်ပါ။

 $mysqli->next_result();

၎င်းသည်အောက်ပါအန္တရာယ်များကိုဖြစ်ပေါ်စေသည်။

1 ။ အမှားတစ်ခုသို့မဟုတ်သတိပေးချက်တစ်ခုဖြစ်ပေါ်စေသည်

Next_result () သူ့ဟာသူကအမှားတစ်ခု (ဒါ မှားယွင်းမှု ပြန်ပို့ခြင်း) ကိုတိုက်ရိုက်အစီရင်ခံခြင်းမဟုတ်ဘဲ, အကယ် . သင်သည်မှန်ကန်သောရလဒ်ကိုမသုံးပါကမှန်ကန်စွာမစားပါနှင့်

MySQLI ၏ဆက်သွယ်မှုသည်မမှန်ကန်ကြောင်းအခြေအနေတွင်ရှိသည်။

2 ။ အရင်းအမြစ်ယိုစိမ့်

အကယ်. သင်သည်လက်ရှိရလဒ်ကိုအတိအလင်းလုပ်ဆောင်ခြင်းမပြုပါက Next_result သို့တိုက်ရိုက်သွားပါက MySQL server သည်သင်ယခင်ရလဒ်ကိုမဖတ်သေးကြောင်းနှင့်အရင်းအမြစ်များ ယိုစိမ့်မှုများကိုအလွယ်တကူချိတ်ဆက် နိုင်သည့်အရင်းအမြစ်များသို့မဟုတ်သုတ်သင်ခြင်းများကိုဆက်လက်ထိန်းသိမ်းထားလိမ့်မည်ဟုယုံကြည်သည်။

3 ။ Code Logic အမှားများ

အနတ်တ နောက်ဆက်တွဲ _result () သည်ရလဒ်မျိုးစုံရှိရန်မျှော် လင့် ထားသည့်အတိုင်းကုဒ်ကြည့်ရှုနိုင်သည်

အဲဒါကိုအသုံးပြုရန်မှန်ကန်သောနည်းလမ်း

Next_Result () ကို သာသုံးပါ။

  • multi_query () ကိုသုံးပါသို့မဟုတ်သိုလှောင်ထားသည့်လုပ်ထုံးလုပ်နည်းများကို execute လုပ်ပါ။

  • သင်၏ SQL သည်ရလဒ်မျိုးစုံကိုပြန်ပို့သည်ဟုအတည်ပြုပါ။

  • ယခင်ရလဒ်အစုကို Next_result () ကိုခေါ်ခြင်းမပြုမီစားသုံးသည်။

အောက်ပါယုတ္တိဗေဒကိုသင် encapsate လုပ်နိုင်သည်။

 if ($mysqli->multi_query($sql)) {
    do {
        if ($result = $mysqli->store_result()) {
            // လက်ရှိရလဒ် set ကိုဖြစ်စဉ်
            $result->free();
        }
    } while ($mysqli->more_results() && $mysqli->next_result());
}

ဤအရေးအသားသည်ပိုမိုလုံခြုံသောရလဒ်များပိုမိုများပြားသောရလဒ်များရှိပါကသာ Veget_result () ကို သာဟုခေါ်သည်။

အကျဉ်းချုပ်

ရလဒ်အစုအဝေးများမရှိရင် Next_result () ကိုခေါ်ခြင်း () အစုအမျိုးမျိုးမပါဘဲအရင်းအမြစ်များကိုမသက်ဆိုင်ပါ။ သင်၏ရှာဖွေခြင်းဖွဲ့စည်းပုံကိုသေချာစွာနားလည်ရန်သေချာပါစေ,

တိုတိုတွင် Next_result () သည် Multi-variation sets များနှင့်ဆက်ဆံရာတွင်အရေးကြီးသောကိရိယာတစ်ခုဖြစ်သော်လည်း "၎င်းကို အသုံးပြု. " ၎င်းကိုပိုမိုအသုံးပြုခြင်းထက် ပို. အရေးကြီးသည်။