ပထမ ဦး စွာအနေဖြင့် Multi-lever set query ၏အခြေခံသဘောတရားများကိုနားလည်ရန်အလွန်အရေးကြီးသည်။ ကျွန်ုပ်တို့သည်မေးမြန်းခြင်းများစွာပါ 0 င်သော SQL ကြေငြာချက်ကိုကျွန်ုပ်တို့လုပ်ဆောင်သောအခါ (ဥပမာ -
$query = "SELECT * FROM users; SELECT * FROM orders;";
PHP သည်ရလဒ်အစုအမျိုးမျိုးပါ 0 င်သည့်အရာဝတ်ထုတစ်ခုကိုပြန်လည်ရောက်ရှိစေသည်။ ဒီကိစ္စမှာဒီအမှုမှာ Next_result () ဒီရလဒ်ကိုကျော်လုပ်ဖို့အသုံးပြုသည်။
ယေဘုယျအားဖြင့် လာမည့် _result () အသုံးပြုမှုသည်အောက်ပါအတိုင်းဖြစ်သည် -
$mysqli = new mysqli("localhost", "username", "password", "database");
$query = "SELECT * FROM users; SELECT * FROM orders;";
// တစ် ဦး စုံစမ်းမှု execute
if ($mysqli->multi_query($query)) {
// ပထမရလဒ်ကိုသတ်မှတ်ပါ
if ($result = $mysqli->store_result()) {
while ($row = $result->fetch_assoc()) {
// ပထမ ဦး ဆုံးမေးမြန်းချက်ရလဒ်ဖြစ်စဉ်
}
$result->free();
}
// နောက်ဆက်တွဲရလဒ်အစုံရရှိရန်ဆက်လက်
while ($mysqli->more_results()) {
$mysqli->next_result(); // လာမည့်ရလဒ် set ကိုဆက်လက်ရယူရန်ဆက်လက်
if ($result = $mysqli->store_result()) {
while ($row = $result->fetch_assoc()) {
// ဒုတိယစုံစမ်းမှုရလဒ်ဖြစ်စဉ်ကို
}
$result->free();
}
}
}
ဤဥပမာတွင်ကျွန်ုပ်တို့သည်ပထမ ဦး ဆုံးမေးမြန်းချက်နှစ်ခုပါ 0 င်သော SQL ကြေညာချက်ကိုပထမဆုံးလုပ်ဆောင်သည်။ Multi_query () နှင့်အတူရှာဖွေမှုကိုကွပ်မျက်ခံရပြီးနောက်ရလဒ်တစ်ခုစီကိုတ ဦး တည်းဖြင့်သတ်မှတ်ရန် Next_result () ကို သုံးပါ။
Next_result () သည် Multi-any စုံစမ်းမှုများကိုကိုင်တွယ်ရန်အတွက်အသုံးဝင်သောကိရိယာတစ်ခုဖြစ်သော်လည်း၎င်းကိုအကြိမ်ကြိမ်ခေါ်ဆိုသည့်အခါသင်သတိမပြုမိပါကအောက်ပါပြ problems နာများကိုသင်ကြုံတွေ့ရနိုင်သည် -
အရင်းအမြစ်ယိုစိမ့်မှု - Next_result သို့ခေါ်ဆိုမှုတစ်ခုစီ () ကိုခေါ်ယူပြီးနောက်, စတိုး () သို့မဟုတ် use_result () မှတဆင့်ရရှိသောရလဒ်များကိုမှန်ကန်စွာဖြည့်စွက်ထားရမည်။ အကယ်. အခမဲ့ () သို့မဟုတ် အနီးကပ် () နည်းလမ်းကိုအရင်းအမြစ်ကိုသယံဇာတများကိုမခေါ်ပါကအထူးသဖြင့်အချက်အလက်အမြောက်အများနှင့်ရလဒ်အစုများစွာရှိသည့်အခါမှတ်ဥာဏ်ယိုစိမ့်မှုများကိုဖြစ်ပေါ်စေလိမ့်မည်။
ဒေတာဘေ့စ် connection timoutout: နောက်တစ်ခေါက် () Next_result () ကို ရလဒ်ထုတ်ပြန်ခြင်းမပြုဘဲထပ်ခါတလဲလဲဟုအကြိမ်ကြိမ်ခေါ်ယူခြင်းသည်ဒေတာဘေ့စ်၏ဆက်သွယ်မှုကိုအလုပ်များနေစေနိုင်သည်။
မမှန်ကန်သော query roome အမိန့် - အမှားတစ်ခုအနေဖြင့်အမှားအယွင်းများ ကို မှန်ကန်စွာသိမ်းဆည်းခြင်းမပြုပါက, ဤအမှားများကိုကိုင်တွယ်ရန်အလွန်အရေးကြီးသည်, MySQLI_ERRORRORE () သို့မဟုတ် MySQLI_ERRNO_ERRNO () သို့မဟုတ် mySQli_errno () သို့မဟုတ် mySQli_errno () ကို စစ်ဆေးရန်အတွက်အမှားအယွင်းများကိုဖမ်းယူရန်လိုအပ်သည်။
အရင်းအမြစ်များကိုမှန်ကန်စွာဖြန့်ချိမည်မဟုတ်ပါ။ အကယ်. developer သည်ယခင်ရလဒ်ကိုထုတ်ပြန်ရန်မေ့နေပါက Next_result () ကို ခေါ်ယူပြီးနောက်အရင်းအမြစ်များကိုအနှောက်အယှက်ဖြစ်စေသည့်အရင်းအမြစ်များကိုဖြည့်ဆည်းပေးနိုင်သည်။
Next_result () ကို အသုံးပြုသောအခါအဘယ်ကြောင့်အာရုံစိုက်ရန်ဘုံပြ problems နာများနှင့်ထောင်ချောက်အနည်းငယ်ကိုဤတွင်ဖော်ပြထားသည်။
အခမဲ့အရင်းအမြစ်များသို့ အခမဲ့ () ကိုသေချာအောင်လုပ်ပါ။ ရလဒ်ကိုပြုပြင်ပြီးတဲ့နောက် $ ရလဒ် -> အခမဲ့ () အခမဲ့ () () () () () () () () () () () ကိုအခမဲ့မှတ်ဉာဏ်ကိုသေချာအောင်လုပ်ပါ။ ထုတ်ပြန်ခြင်းမရှိသေးသောရလဒ်အနေဖြင့်အပိုဆောင်းမှတ်ဉာဏ်ကိုယူပြီးစွမ်းဆောင်ရည်ပြ issues နာများကိုဖြစ်ပေါ်စေသည်။
more_results () : နောက်: Next_result () သည်ပိုမို မှန်ကန် သည့်အခါသာမှန်ကန်သည်။ ဒီလိုမှမဟုတ်ရင်အဲဒါကိုဖုန်းခေါ်ဆိုခြင်းကမလိုအပ်တဲ့စုံစမ်းမှုအမှားတွေ,
အမှားကိုင်တွယ်ခြင်း - မေးမြန်းချက်မျိုးစုံသုံးသောအခါ query တစ်ခုစီကိုအောင်မြင်စွာကွပ်မျက်ခံရပြီးအမှားကုဒ်သို့မဟုတ်အမှားအယွင်းများအပေါ် အခြေခံ. သင့်လျော်သောပြုပြင်ခြင်းကိုသင်စစ်ဆေးရမည်။ အကယ်. စုံစမ်းမှုမအောင်မြင်ပါကနောက်ဆက်တွဲ _result () မျှော်လင့်ထားသည့်အတိုင်းအလုပ်မလုပ်ပါ။
Query Sorting: စုံစမ်းမှုအမှာစာမှန်ကန်မှုရှိကြောင်းသေချာစေရန်နှင့်မေးမြန်းချက်အားလုံးသည်သက်ဆိုင်ရာရလဒ်များကိုပြန်လည်ရောက်ရှိစေနိုင်သည်။ အကယ်. စုံစမ်းမှုကြေညာချက်တွင်ယုတ္တိရှိသောအမှားတစ်ခုရှိပါကသို့မဟုတ်ရလဒ်ကိုမပြန်ပါက,
ရလဒ်အစုအမျိုးမျိုးနှင့်အလုပ်လုပ်သောအခါအကောင်းဆုံးအကြံပြုချက်များကိုဤတွင်ဖော်ပြထားသည်။
မေးမြန်းမှုမျိုးစုံအသုံးပြုခြင်းကိုလျှော့ချပါ။ Multi_query () စုံစမ်းမှုများကိုထိထိရောက်ရောက်ကိုင်တွယ်နိုင်သော်လည်း၎င်းသည် code ကိုရှုပ်ထွေးပြီး debug လုပ်ရန်ခက်ခဲစေသည်။ လုပ်ထုံးလုပ်နည်းကိုရိုးရှင်းစေရန်စုံစမ်းမှုတစ်ခုတည်းသို့စုံစမ်းမှုကိုခွဲထုတ်ရန်စဉ်းစားပါ။
Database connection ကိုကျိုးကြောင်းဆီလျော်စွာအသုံးပြုပါ။ အကယ်. သင်သည် Next_result () အကြီးအကျယ်အသုံးပြုပါက connection teast configuration ကိုတိုးမြှင့်ခြင်းသို့မဟုတ် database configuration ကိုတိုးမြှင့်ခြင်းသို့မဟုတ် database configurations များကိုတိုးမြှင့်နိုင်သည်။
အရောင်းအ 0 ယ်များအသုံးပြုခြင်း - စုံစမ်းမှုများစွာတွင်မှီခိုမှုများရှိပါကအရောင်းအ 0 ယ်များနှင့်ရှေ့နောက်ညီညွတ်မှုကိုသေချာစေရန်အရောင်းအ 0 ယ်များကိုအသုံးပြုရန်စဉ်းစားပါ။ ၎င်းသည်အမှားအယွင်းများ၏ဖြစ်ပျက်မှုများကိုလျော့နည်းစေသည်။ အမှားများကိုပိုမိုလွယ်ကူစေသည်။
ထပ်ခါတလဲလဲဖုန်းခေါ်ဆိုမှုသည် Next_result () သည်ရလဒ်များကိုကိုင်တွယ်ဖြေရှင်းရန်အတွက်အစွမ်းထက်သောကိရိယာတစ်ခုဖြစ်သည်။ ကျိုးကြောင်းဆီလျော်စွာဒီဇိုင်းရေးဆွဲခြင်းနှင့်ဒေတာဘေ့စ်လုပ်ငန်းများကိုဒီဇိုင်းဆွဲခြင်းနှင့်စုံစမ်းမှုစုံစမ်းမှုများအပေါ်အလွန်အမင်းမှီခိုခြင်းမှရှောင်ရှားခြင်းသည် code ကိုထိရောက်စေရန်နှင့်ယုံကြည်စိတ်ချရသောသော့ချက်ဖြစ်သည်။