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

Next_resulult ကိုသုံးပြီးနောက်ရလဒ်ကိုမလွတ်မြောက်သောကြောင့်ဖြစ်ပေါ်လာသောမှတ်ဉာဏ်ယိုစိမ့်မှုပြ problem နာသည် ()

gitbox 2025-04-29

MySQL databases များကို mysql ဒေတာဘေ့စ်များကိုအသုံးချရန် PHP ကိုအသုံးချသောအခါ MySQLI ၏စုံစမ်းမှုအတွက် MySQLI extension ကိုအသုံးပြုပါက Next_result () နည်းလမ်းကိုကြုံတွေ့ရနိုင်သည်။ များစွာသောလူတို့သည်အရေးကြီးသောအသေးစိတ်အချက်အလက်များကိုလျစ်လျူရှုကြသည်။

ဤဆောင်းပါးသည်သင့်အားအကြောင်းရင်းများ,

နောက်ခံ: Next_Result () ကဘာလဲ။

MySQLI :: Multi_query () မှတဆင့် SQL များကို execute လုပ်သည့်အခါ MySQL သည်ရလဒ်အလုံးအရင်းများစွာကိုပြန်လည်ရောက်ရှိစေသည်။ ဤရလဒ်အစုံများကို MySQLI :: Next_result () မှတဆင့်တစ်ခုစီကိုသုံးနိုင်သည်။ ရလဒ်တစ်ခုစီ၏ပါဝင်မှုကို MySQLI :: Store_Result () နှင့် တွဲဖက်. ရယူနိုင်သည်။

နမူနာကုဒ်:

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

$sql = "SELECT * FROM users; SELECT * FROM orders;";
if ($mysqli->multi_query($sql)) {
    do {
        if ($result = $mysqli->store_result()) {
            while ($row = $result->fetch_assoc()) {
                // ဒေတာတစ်ခုချင်းစီကိုအတန်းတိုင်းလုပ်ငန်းစဉ်
                echo $row["id"] . "<br>";
            }
            // ရလဒ်ကိုလွှတ်ပေးရန်
            $result->free();
        }
    } while ($mysqli->next_result());
}

ဒီဥပမာမှာ Store_result () တစ်ကြိမ် စီ () ကိုသုံးပြီးသုံးပြီးသုံးပြီးသုံးပြီးနောက်ကိုလွှတ်ပေးပါ။

ပြနာ: ရလဒ်အနေဖြင့်ဖြန့်ချိခြင်းမရှိပါ

အကယ်. သင်သည် $ ရလဒ် -> အခမဲ့ () ကိုချန်လှပ်ပါက -

 // ? 未ရလဒ်ကိုလွှတ်ပေးရန်的代码示例
if ($result = $mysqli->store_result()) {
    while ($row = $result->fetch_assoc()) {
        echo $row["id"] . "<br>";
    }
    // လျစ်လျူရှုခြင်း $result->free();
}

ထို့နောက်သင်၏ပရိုဂရမ်တွင်မှတ်ဉာဏ်အသုံးပြုမှုသည်ဆက်လက်တိုးတက်နေမည်, MySQLI တိုးချဲ့မှုသည်ဖောက်သည်မှတ်ဉာဏ်တွင်ဖော်ပြထားသောရလဒ်ကိုသိမ်းဆည်းထားသောကြောင့် PHP သည်ဤအရင်းအမြစ်များကိုအတိအလင်းထုတ်ပြန်ခြင်းဖြင့်သာပြန်လည်အသုံးပြုနိုင်သည်။

မှတ်ဉာဏ်ယိုစိမ့်မှု၏အကျိုးဆက်များ

  • ပရိုဂရမ်သည်အချိန်ကြာမြင့်စွာလည်ပတ်ပြီးနောက်မှတ်ဉာဏ်မြင့်တက်ခြင်း,

  • ဆာဗာတုံ့ပြန်မှုသည်နှေးကွေးခြင်းသို့မဟုတ်ပင်ပျက်ကျခြင်း,

  • PHP သည် ခွင့်ပြုထားသောမှတ်ဥာဏ်အရွယ်အစားကုန်သွားသော အမှားအယွင်းများကိုဖော်ပြသည်။

  • မအောင်မြင်သောစွမ်းဆောင်ရည်ပြ issues နာများ။

၎င်းသည်အထူးသဖြင့်ယာဉ်ကြောပိတ်ဆို့မှုများ, အချိန်ကိုက်ခြင်းလုပ်ငန်းများ,

လုပ်ဖို့မှန်ကန်သောနည်းလမ်း

ရလဒ်ကိုပြုပြင်ပြီးနောက် $ ရလဒ် -> အခမဲ့ () အခမဲ့ () () အခမဲ့ () အခမဲ့ () အခမဲ့ခေါ်ဆိုရန်သတိရပါ။ ထို့အပြင်ရလဒ်အသစ်များရှိမရှိမရှိစစ်ဆေးပါ ,

ဖြည့်စွက်ပါးသွားသောပုံစံကိုဖြည့်စွက်ပါ။

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

$sql = "CALL complex_procedure(); CALL another_procedure();";
if ($mysqli->multi_query($sql)) {
    do {
        if ($result = $mysqli->store_result()) {
            while ($row = $result->fetch_assoc()) {
                // တစ်ခုချင်းစီကိုလိုင်း process
            }
            $result->free(); // ? မှန်ကန်စွာလွှတ်ပေးရန်
        }
    } while ($mysqli->more_results() && $mysqli->next_result());
}

ယိုစိမ့်မှုကိုရှာဖွေရန်

  • Memory အသုံးပြုမှုကိုစောင့်ကြည့်ရန် memorom_get_get_age () သို့မဟုတ် xdebug tools များကိုသုံးပါ။

  • Process memory ကိုစောင့်ကြည့်ရန် Top သို့မဟုတ် Htop ကဲ့သို့သော Linux command များကိုသုံးပါ။

  • တစ်ခုချင်းစီကိုစုံစမ်းမှုပြီးနောက်မှတ်ဉာဏ်အသုံးပြုမှုမှတ်တမ်းများ။

အကျဉ်းချုပ်

MySQLI :: Next_result () ကို သုံးသည့်အခါရလဒ်ကိုထုတ်ပြန်ခြင်းသည် PHP scripts တွင်မှတ်ဉာဏ်ယိုစိမ့်မှုကိုဖြစ်ပေါ်စေသည်။ မှန်ကန်သောနည်းလမ်းမှာရလဒ်အနေဖြင့်ရလဒ်အနေဖြင့်ရလဒ်ကိုပြုလုပ်သောအခါတိုင်း $ ရလဒ် - အခမဲ့ () အခမဲ့ () ကိုခေါ်ဆိုရန်ဖြစ်သည်။ ၎င်းသည်ပရိုဂရမ်ကိုခိုင်မာစေရုံသာမကမှတ်ဥာဏ်အသုံးပြုမှုကြောင့်ဖြစ်ပေါ်လာသောစွမ်းဆောင်ရည်ပြ problems နာများကိုလည်းရှောင်ရှားနိုင်သည်။

အကယ်. သင်သည်ရှုပ်ထွေးသောဒေတာ interfaces များသို့မဟုတ်အသုတ်တွင်အချက်အလက်များကိုလုပ်ဆောင်နေသည့် 0 န်ဆောင်မှုများတည်ဆောက်နေပါက၎င်းသည်အထူးအရေးကြီးသည်။

MySQLI Multi-Rever Multi-Reveration အတွက်တရားဝင်စာရွက်စာတမ်းများပိုမိုများပြားသည်, သင်ဝင်ရောက်ကြည့်ရှုနိုင်သည်။
https://gitbox.net/docs/php/mysqli-multiery (ယူဆထားသော link)

PHP Development တွင်ဘုံဒဏ်ကိုရှောင်ရှားခြင်းကိုရှောင်ရှားရန်ဤဆောင်းပါးသည်သင့်အားကူညီနိုင်လိမ့်မည်ဟုကျွန်ုပ်မျှော်လင့်ပါသည်။