Database Multi-query လုပ်ငန်းလည်ပတ်မှုအတွက် PHP ၏ MySQLI extension ကိုအသုံးပြုသောအခါ Next_result () သည်အရေးပါသောလုပ်ဆောင်ချက်ဖြစ်သည်။ ၎င်းကိုသိုလှောင်ထားသည့်လုပ်ထုံးလုပ်နည်းများအပြီးရလဒ်မျိုးစုံကိုလုပ်ဆောင်ရန် (သို့) SQL ထုတ်ပြန်ချက်များကိုတစ်ပြိုင်တည်းပေးပို့ရန်အသုံးပြုသည်။ သို့သော် developer များစွာသည် Next_result () ကို မခေါ်မီ (): နောက်တစ်ခုကိုမခေါ်မီ () မခေါ်ဆိုမီလေးနက်သောပြ problems နာများဖြစ်စေနိုင်သည်။
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());
}
MySQLI :: Next_Result () သည် လက်ရှိရလဒ်ကိုရှင်းလင်းခြင်းသို့မဟုတ်ထုတ်လွှတ်ခြင်းများပြုလုပ်ခဲ့သမျှကာလပတ်လုံးအလုပ်လုပ်သည်။ အကယ်. သင်သည် စတိုး () သို့မဟုတ် အခမဲ့ () အဆင့်များကိုကျော်သွားပါက Next_result () ကို ကျော်သွားပါကနောက်ရလဒ်နှင့် ပတ်သက်. မှန်ကန်စွာမရွေ့နိုင်ပါကနောက်ရလဒ်ရလဒ်များကြောင့်နောက်ဆက်တွဲစုံစမ်းမှုရလဒ်များပေါ်ပေါက်လာခြင်းမရှိပါ။
ဤတွင်အသုံးအများဆုံးအမှားအယွင်းများ
Commands out of sync; you can't run this command now
ဤအမှားဆိုသည်မှာသင်၏ရလဒ်အသစ်ကိုလုပ်ဆောင်ခြင်းသို့မဟုတ်လက်ရှိရလဒ်ကိုမလုပ်ဆောင်မီလာမည့်ရလဒ်ကိုရယူရန်ကြိုးစားခြင်းသို့မဟုတ်လာမည့်ရလဒ်ကိုရယူရန်ကြိုးစားခြင်းကဲ့သို့သော MySQL တွင်မှားယွင်းစွာလုပ်ဆောင်ခြင်းကိုမှားယွင်းစွာလုပ်ဆောင်နိုင်သည့်အမိန့်ဖြစ်သည်။
PHP ၏အမှိုက်သရိုက်စုဆောင်းမှုယန္တရားသည်အရင်းအမြစ်များကိုအများအားဖြင့်အလိုအလျောက်လုပ်ဆောင်နိုင်သော်လည်းကြီးမားသောအချက်အလက်ပမာဏသို့မဟုတ်ရှည်လျားသောဆက်သွယ်မှုအခြေအနေများတွင်အများအား ဖြင့် အလိုအလျောက်ဖြစ်စေသည်။
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 တင်ထားတဲ့စနစ်မှာအမှားအယွင်းများအမှားအယွင်းများစွာအမှားအယွင်းများကိုသင်တွေ့ရလိမ့်မည်။