PHP တွင် Next_result () သည် MySQLI extensions များတွင်ဘုံနည်းလမ်းတစ်ခုဖြစ်ပြီးများသောအားဖြင့်မေးမြန်းချက်မျိုးစုံကိုအကောင်အထည်ဖော်သောအခါအသုံးပြုလေ့ရှိသည်။ သို့သော် developer များစွာသည် Next_result () ကို အသုံးပြုသောအခါအရင်းအမြစ်များကိုလွှတ်ပေးခြင်းကိုလျစ်လျူရှုပေမည်။ ဤဆောင်းပါးကိုရှောင်ရန်ဤဆောင်းပါးသည် လာမည့် _result () ကို အသုံးပြုသောအခါအရင်းအမြစ်များကိုမှန်ကန်စွာထုတ်လွှတ်ပေးရန်သေချာစေရန်အတွက်ဤဆောင်းပါးသည်လက်တွေ့ကျသောအချက်များ 3 ခုကိုမျှဝေပါမည်။
အကောင်အထည်ဖော်မှုမျိုးစုံကိုကွပ်မျက်ခံရသည့်အခါ, Next_result () သည် မေးခွန်းတစ်ခုစီ၏ရလဒ်အစုကိုဖတ်ပြီးလုပ်ဆောင်သည်။ ရလဒ်ကိုအချိန်တိုအတွင်းမထုတ်ပြန်ပါက၎င်းတို့သည်အမြဲမှတ်ဉာဏ်ကိုယူဆောင်လာလိမ့်မည်။ ဤအရာကိုရှောင်ရှားရန်ရလဒ်တစ်ခုချင်းစီကိုအပြောင်းအလဲနဲ့ () free_result () နည်းလမ်းကိုသေချာစွာခေါ်ပါ။
နမူနာကုဒ် :
<?php
// ဒေတာဘေ့စ် connection တစ်ခုဖန်တီးပါ
$mysqli = new mysqli("localhost", "username", "password", "database");
// စုံစမ်းမှုများကိုမျိုးစုံလုပ်ဆောင်ပါ
$mysqli->multi_query("SELECT * FROM table1; SELECT * FROM table2;");
// ဖြစ်စဉ်ကိုပထမရလဒ် set ကို
do {
if ($result = $mysqli->store_result()) {
// အချက်အလက်များကိုထုတ်ယူခြင်း
while ($row = $result->fetch_assoc()) {
echo $row['column_name'];
}
// ပထမရလဒ်ကိုပြင်ဆင်ပါ
$result->free();
}
// နောက်ရလဒ်ကိုသွားပါ
} while ($mysqli->next_result());
?>
အထက်ဖော်ပြပါကုဒ်များတွင်ပထမစုံစမ်းမှုရလဒ်ကိုလုပ်ဆောင်ပြီးနောက်ကျွန်ုပ်တို့သည်ပထမ ဦး ဆုံးမေးမြန်းချက်ရလဒ်ကိုလုပ်ဆောင်ပြီးနောက် $ ရလဒ် -> အခမဲ့ () () () () () () () ကို ဖုန်းဆက်သည်။ ထို့နောက်နောက်မေးခွန်းကိုနောက်မေးခွန်းအစုကို Next_result () ဖြင့်ဆက်လက်လုပ်ဆောင်သည်။
Multi_query () ကို သုံး. မေးမြန်းချက်များစွာကို အသုံးပြု. အကောင်အထည်ဖော်သည့်အခါ, ဤကိစ္စတွင်, သင်တစ် ဦး ချင်းစုံစမ်းမှုတစ်ခုချင်းစီ၏ရလဒ်အစုကိုပြန်လည်အမှားအယွင်းများကိုစစ်ဆေးခြင်းအားဖြင့်သန့်ရှင်းရေးကိုသန့်ရှင်းအောင်ပြုလုပ်နိုင်သည်။
နမူနာကုဒ် :
<?php
$mysqli = new mysqli("localhost", "username", "password", "database");
// မျိုးစုံရှာဖွေမှုထုတ်ပြန်ချက်များ execute
$query = "SELECT * FROM table1; SELECT * FROM table2;";
if ($mysqli->multi_query($query)) {
do {
if ($result = $mysqli->store_result()) {
// အချက်အလက်များကိုထုတ်ယူခြင်း
while ($row = $result->fetch_assoc()) {
echo $row['column_name'];
}
// ရလဒ်အစုအဝေးကိုသန့်ရှင်းရေး
$result->free();
}
} while ($mysqli->next_result());
} else {
echo "Error: " . $mysqli->error;
}
?>
ဤဥပမာတွင် Multi_query () သည် execute လုပ်ရန်ပျက်ကွက်ပါက Code သည် unfred for querty များကိုဆက်လက်လုပ်ဆောင်ခြင်းကိုတားဆီးမည့်နောက်ဆက်တွဲမေးမြန်းချက်များကိုဆက်လက်လုပ်ဆောင်မည့်အစားအမှားအယွင်းများကိုထုတ်ပေးသည်။
အချို့သောအခြေအနေများတွင်မေးမြန်းချက်များအနေဖြင့်ငွေပေးငွေယူရန်အမိန့်နှင့်ဆက်နွယ်နေပါကမေးမြန်းချက်များကိုချောမွေ့စွာကွပ်မျက်ခြင်းနှင့်စုံစမ်းမှုတစ်ခုချင်းစီကိုလွှတ်ပေးရန်အတွက်ငွေပေးငွေယူများကိုအသုံးပြုရန်အကြံပြုသည်။ ၎င်းသည်မမှန်ကန်ကြောင်းမေးမြန်းခြင်းအမိန့်ကြောင့်အရင်းအမြစ်များကိုမသက်ဆိုင်သောကိစ္စရပ်များကိုရှောင်ရှားနိုင်သည်။
နမူနာကုဒ် :
<?php
$mysqli = new mysqli("localhost", "username", "password", "database");
// ငွေပေးငွေယူတစ်ခုစတင်ပါ
$mysqli->begin_transaction();
try {
// ပထမ ဦး ဆုံးမေးမြန်းချက်ကို execute
$mysqli->query("SELECT * FROM table1;");
// ဒုတိယမေးခွန်းကိုလုပ်ဆောင်ပါ
$mysqli->query("SELECT * FROM table2;");
// တင်သွင်းမှုတင်သွင်း
$mysqli->commit();
} catch (Exception $e) {
// အမှားတစ်ခုဖြစ်ပေါ်လျှင်ငွေပေးငွေယူကိုပြန်လှိမ့်လိမ့်မည်
$mysqli->rollback();
echo "Failed: " . $e->getMessage();
} finally {
// အားလုံးရလဒ်အစုံတက်သန့်ရှင်းရေး
while ($mysqli->more_results()) {
$mysqli->next_result();
}
}
?>
ဤဥပမာတွင်ကျွန်ုပ်တို့သည်အရောင်းအ 0 ယ်အမြောက်အများကိုလုပ်ဆောင်ရန်အရောင်းအ 0 ယ်များကိုအသုံးပြုသည်။
Next_result () ကို အသုံးပြုသောအခါအရင်းအမြစ်များမဖတ်ရသေးသောပြ problem နာကိုရှောင်ရှားရန်အောက်ပါအချက်များလိုက်နာရန်သေချာအောင်လုပ်ပါ။
စုံစမ်းမှုရလဒ်များတစ်ခုစီပြီးနောက်, free_result () ကိုသယံဇာတဖယ်ရှားရန်ခေါ်ဆိုပါ။
Multi_Query () ကို အသုံးပြု. မေးမြန်းချက်မျိုးစုံကိုအကောင်အထည်ဖော်သောအခါအမှားကိုင်တွယ်ပုံနှင့်ပတ်သက်သောအမှားအယွင်းများကိုသတိထားပါ။
အရောင်းအ 0 ယ်များကိုအသုံးပြုသောအခါ,
ဤအကြံပြုချက်များကိုလိုက်နာခြင်းအားဖြင့်သင်သည်အကြှနျုပျတို့မဖတ်ရတဲ့အရင်းအမြစ်များကိုထိရောက်စွာရှောင်ရှားနိုင်, လျှောက်လွှာစွမ်းဆောင်ရည်နှင့်တည်ငြိမ်မှုတိုးတက်အောင်လုပ်နိုင်ပါတယ်။