MySQL databases များကို mysql ဒေတာဘေ့စ်များကိုအသုံးချရန် PHP ကိုအသုံးချသောအခါ MySQLI ၏စုံစမ်းမှုအတွက် MySQLI extension ကိုအသုံးပြုပါက 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 တွင်ဘုံဒဏ်ကိုရှောင်ရှားခြင်းကိုရှောင်ရှားရန်ဤဆောင်းပါးသည်သင့်အားကူညီနိုင်လိမ့်မည်ဟုကျွန်ုပ်မျှော်လင့်ပါသည်။