PHP တွင်ဒေတာဘေ့စ်လုပ်ငန်းများကိုလုပ်ဆောင်သောအခါဒေတာမေးမြန်းချက်များကိုကိုင်တွယ်ရန် MySQLI သို့မဟုတ် PDO Extensions များကိုမကြာခဏသုံးလေ့ရှိသည်။ Next_Result () သည် MySQLI extension တွင် function တစ်ခုဖြစ်သည်။ ၎င်း၏အဓိကလုပ်ဆောင်ချက်သည်မေးမြန်းချက်မျိုးစုံအကောင်အထည်ဖော်သောအခါနောက်ရလဒ်ကိုပြောင်းရွှေ့ရန်ဖြစ်သည်။ သို့သော်, နောက် function ကိုအသုံးပြုသောအခါ, မှတ်ဥာဏ်ယိုစိမ့်မှုများဖြစ်ပေါ်လာသည့်အခါ, ဤဆောင်းပါးသည် လာမည့် raisulult () ၏အကြောင်းရင်းများကိုလေ့လာရန်နှင့်မှတ်ဉာဏ်ပေါက်ကြားမှုများကိုဖြစ်ပေါ်စေပြီးအကောင်းဆုံးသောအကြံပြုချက်များကိုပေးလိမ့်မည်။
စုံစမ်းမှုများစွာပြုလုပ်သောအခါကျွန်ုပ်တို့သည်ရလဒ်များစွာရရှိရန်အတွက်ရလဒ်မျိုးစုံရှိနိုင်သည်။ Next_result () function သည်နောက်ရလဒ်သို့ပြောင်းရွှေ့ရန်အသုံးပြုသည်, နောက်ရလဒ်သို့ပြောင်းရွှေ့ရန်အသုံးပြုသည်။ ဥပမာအားဖြင့်, အောက်ပါကုဒ်အတွက်:
$mysqli = new mysqli("localhost", "user", "password", "database");
// ပထမ ဦး ဆုံးမေးမြန်းချက်ကို execute
$mysqli->query("SELECT * FROM table1");
// ဒုတိယမေးခွန်းကိုလုပ်ဆောင်ပါ
$mysqli->query("SELECT * FROM table2");
// အသုံးပြု next_result() ရလဒ် set ကိုပြောင်းပါ
$mysqli->next_result();
Next_result () မေးခွန်းမျိုးစုံအပြောင်းအလဲများကိုလုပ်ဆောင်သောအခါပျောက်ဆုံးနေသောရလဒ်ကိုဖြေရှင်းရန်ကျွန်ုပ်တို့အားခွင့်ပြုသည်။ သို့သော်ရလဒ်ကိုမတော်တဆစီမံခန့်ခွဲမှုအကာမျိုးစုံကိုင်တွယ်နေစဉ်မတော်တဆစီမံခန့်ခွဲပါက၎င်းသည်မှတ်ဉာဏ်ယိုစိမ့်မှုပြ problems နာများကိုဖြစ်ပေါ်စေနိုင်သည်။
မှတ်ဉာဏ်ယိုစိမ့်မှုတွေပရိုဂရမ်သည်စစ်ဆင်ရေးအတွင်းအသုံးမပြုသောကြောင့်မှတ်ဥာဏ်မရှိတော့သည့်အခါမှတ်ဥာဏ်ကိုစဉ်ဆက်မပြတ်တိုးလာသည်။ Next_result () သည် မှတ်ဉာဏ်ပေါက်ကြားမှုများကိုအောက်ပါအတိုင်းဖြစ်ပေါ်စေသည့်အဓိကအကြောင်းရင်းများမှာ -
ယခင်စုံစမ်းမှု၏ရလဒ်အစုကိုမရှင်းလင်းပါ။ သင်မေးမြန်းမှုမျိုးစုံကိုသင်ကွပ်မျက်ခံရသည့်အခါတစ်ခုချင်းစီသည်ရလဒ်ကိုပြန်လည်ရရှိခဲ့သည်။ အကယ်. သင်ယခင်စုံစမ်းမှု၏ရလဒ်အလုံးအရင်းကိုမရှင်းလင်းပါက scription အဆုံးသတ်သည်အထိမှတ်ဉာဏ်ရှိအချက်အလက်များဆက်လက်တည်ရှိလိမ့်မည်။ ယခင်စုံစမ်းမှု၏ရလဒ်ကို Next_resulult () ကို အသုံးပြုသောအခါစနစ်တကျသန့်ရှင်းရေးမလုပ်ပါကမှတ်ဉာဏ်သည်တဖြည်းဖြည်းတိုးလာလိမ့်မည်။
Next_result () အကြိမ်ကြိမ်ခေါ်ဆိုခြင်းပြီးနောက်အခမဲ့မှတ်ဉာဏ်ကိုမေ့သွားပြီးနောက် - တစ်ခုချင်းစီကိုခေါ်ဆိုမှုတစ်ခုချင်းစီကိုခေါ်ယူပြီးနောက်ရလဒ်အစု အဝေး () တွင်အချက်အလက်များကိုစနစ်တကျထုတ်လွှတ်ခြင်းမရှိပါက ( free_result () ) သည် Memory ကိုဆက်လက်သိမ်းဆည်းသွားမည်မဟုတ်ချေ။ ဥပမာအားဖြင့်:
$mysqli->query("SELECT * FROM table1");
$mysqli->next_result(); // လာမယ့်စုံစမ်းမှုရလဒ်ကို switch ကို switch
ယခင်စုံစမ်းမှု၏ရလဒ်ကိုမထုတ်ပြန်ပါကမှတ်ဉာဏ်စုဆောင်းခြင်းသည်မှတ်ဉာဏ်ယိုစိမ့်မှုကိုရရှိစေသည်။
သင့်လျော်သောအမှားကိုင်တွယ်ခြင်းမရှိပါ - Query Process တွင်အမှားတစ်ခုဖြစ်ပြီးသင့်တော်သောအမှားကိုင်တွယ်မှုမပြုလုပ်နိုင်ပါကဤအစီအစဉ်သည်လုပ်ငန်းခွင်အရင်းအမြစ်များကိုစနစ်တကျသန့်ရှင်းရေးမလုပ်နိုင်ပါ။ ရလဒ်ကိုမှတ်ဉာဏ်သည်အချိန်မီပြန်မလာပါ။
Next_result () ကြောင့်ဖြစ်ရတဲ့မှတ်ဥာဏ်ယိုစိမ့်မှုကိုရှောင်ရှားရန် (), ဤတွင်အချို့သော optimization အကြံပြုချက်များဖြစ်ကြသည်။
ရလဒ် set ကိုသန့်ရှင်းရေးလုပ်ရန် free_result () function ကိုသုံးပါ ။ ၎င်းသည်မှတ်ဥာဏ်ယိုစိမ့်မှုများကိုရှောင်ရှားရန်အရေးကြီးသောခြေလှမ်းတစ်ခုဖြစ်သည်။ ဥပမာအားဖြင့်:
$result1 = $mysqli->query("SELECT * FROM table1");
$result1->free(); // ပထမရလဒ် set ကိုလွှတ်
$mysqli->query("SELECT * FROM table2");
$mysqli->next_result();
ဤသို့ပြုလုပ်ခြင်းသည်နောက်ရလဒ်ကိုမဖွင့်မီယခင်ရလဒ်အစုအဝေးကိုပြန်လည်အမှတ်တရကြောင်းသေချာစေသည်။
ဒေတာဘေ့စ် connection ကိုအချိန်မီပိတ်ပါ။ အကယ် . စုံစမ်းမှုစစ်ဆင်ရေးများအားလုံးကိုပြီးဆုံးပြီးနောက်ဒေတာဘေ့စ်အရင်းအမြစ်များကိုဖြည့်ရန်ဒေတာဘေ့စ်ဆက်သွယ်မှုကိုပိတ်ရန် အနီးကပ် () ကိုသုံးနိုင်သည်။
$mysqli->close(); // ဒေတာဘေ့စ် connection ကိုပိတ်ပါ
ဒေတာဘေ့စ်အရင်းအမြစ်များကိုဖြည့်ဆည်းပေးနိုင်ရန်နှင့်မှတ်ဉာဏ်ယိုစိမ့်မှုကိုကာကွယ်ရန်နှင့်ဆက်သွယ်မှုကိုပိတ်ပါ။
Multi_Query () ကို သုံး ပါ။ စုံစမ်းမှုမျိုးစုံကိုကိုင်တွယ်ရန် - သင်စုံစမ်းမှုများစွာကိုအကောင်အထည်ဖော်ရန်လိုပါက, ဥပမာအားဖြင့်:
$mysqli->multi_query("SELECT * FROM table1; SELECT * FROM table2;");
do {
if ($result = $mysqli->store_result()) {
// အပြောင်းအလဲနဲ့ရလဒ်အစုံ
$result->free();
}
} while ($mysqli->next_result());
ဤနည်းအားဖြင့် Multi_Query () မှတစ်ဆင့် query () မှတစ်ဆင့်လက်စွဲစာအုပ်ခေါ်ဆိုမှုကိုရှောင်ရှားခြင်းနှင့်ရလဒ်မျိုးစုံအကြားအလိုအလျှောက်အလိုအလျှောက်စီမံခန့်ခွဲသည်။
အမှိုက်သရိုက်စုဆောင်းခြင်းကို enable: PHP တွင် built-in အမှိုက်သရိုက်များစုဆောင်းမှုယန္တရားရှိသည်။ အချို့ဖြစ်ရပ်များတွင်အမှိုက်သရိုက်စုဆောင်းမှုသည်အသေသတ်ခြင်းကိုနှောင့်နှေးစေနိုင်သည် ။ ဥပမာအားဖြင့်:
gc_collect_cycles(); // ကိုယ်တိုင်အမှိုက်သရိုက်စုဆောင်းခြင်း
၎င်းသည်မှတ်ဥာဏ်မရှိတော့သည့်မှတ်ဉာဏ်အရာဝတ်ထုများကိုသန့်ရှင်းစေပြီးမှတ်ဉာဏ်ယိုစိမ့်မှုအန္တရာယ်ကိုလျော့ပါးစေသည်။
PHP တွင် Multi-queries များကိုကိုင်တွယ်ရာတွင် နောက် function သည် function သည်အသုံးဝင်သော်လည်းရလဒ်မေးမြန်းချက်များကိုမှန်ကန်စွာစီမံခြင်းမပြုပါကမှတ်ဉာဏ်ပေါက်ကြားမှုများဖြစ်ပေါ်စေနိုင်သည်။ ဤအရာကိုရှောင်ရှားရန်ကျွန်ုပ်တို့သည်ရလဒ်များကိုသန့်ရှင်းရေးလုပ်ရန်, ဒေတာဘေ့စ် connection ကိုပိတ်ပြီးဒေတာဘေ့စ်ဆက်သွယ်မှုကိုပိတ်ထားသည့်အခါအခြားမှတ် ဉာဏ် စွမ်းဆောင်ရည်အကောင်းဆုံးအစီအမံများကိုချမှတ်သင့်သည်။ ဤနည်းလမ်းများမှတစ်ဆင့် PHP ပရိုဂရမ်များ၏မှတ်ဉာဏ်အသုံးပြုမှုသည်အပြေးချိန်၌ပိုမိုထိရောက်စွာပိုမိုထိရောက်နိုင်ကြောင်းသေချာစေရန်နှင့်မလိုအပ်သောမှတ်ဉာဏ်ယိုစိမ့်မှုများကိုရှောင်ရှားရန်ဖြစ်နိုင်သည်။