MySQLI ကိုအသုံးပြုပြီးစုံစမ်းမှုပေါင်းသင်းမှုထုတ်ပြန်ချက်များကိုအကောင်အထည်ဖော်သည့်အခါတစ်ခါတစ်ရံကျွန်ုပ်တို့သည်ရလဒ်တစ်ခုချင်းစီကိုအလှည့်အပြောင်းတစ်ခုပြုလုပ်ရန်လိုအပ်သည်။ MySQLI_MORE_RESULE_RESELTS () နှင့် MySQLI_NEXT_RESult () နှင့် MySQLI_NEXTEXT_RESult () နှင့် MySqli_next_result () နှင့် MySqli_next_result () သည်ဤရလဒ်များကိုကျော်လျောက်ပတ်စေရန်။
ဤဆောင်းပါးသည် MySQLI_MORE_RESULE ကို မည်သို့အသုံးပြုရမည်ကိုဖော်ပြရန်အမှန်တကယ်ကုဒ်နမူနာကိုအသုံးပြုမည် ။
ဥပမာအားဖြင့်သင့်တွင် SQL ထုတ်ပြန်ချက်များရှိသည်ဆိုပါစို့။
SELECT * FROM users;
SELECT * FROM orders;
SELECT * FROM products;
သင်တစ်ချိန်တည်းမှာသူတို့ကိုတစ်ပြိုင်နက်တည်းလုပ်ဆောင်ချင်တယ်။ ဤအခြေအနေသည် Backend Data Display Data Display, Data Initialization နှင့်အခြားရည်ရွယ်ချက်များကိုဖောက်ဖျက်ခြင်းအတွက်သင့်တော်သည်။
ပထမ ဦး စွာကျွန်ုပ်တို့သည်ဒေတာဘေ့စ်နှင့်ချိတ်ဆက်ပြီး Multi_query ကို သုံး. SQL ထုတ်ပြန်ချက်များကိုအကောင်အထည်ဖော်ရန်လိုအပ်သည်။
$mysqli = new mysqli("localhost", "username", "password", "database");
if ($mysqli->connect_errno) {
die("ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $mysqli->connect_error);
}
$sql = "
SELECT * FROM users;
SELECT * FROM orders;
SELECT * FROM products;
";
if ($mysqli->multi_query($sql)) {
do {
// လက်ရှိရလဒ် set ကိုဖြစ်စဉ်
if ($result = $mysqli->store_result()) {
while ($row = $result->fetch_assoc()) {
print_r($row);
}
$result->free();
}
// နောက်ထပ်ရလဒ်ရှိမရှိစစ်ဆေးပါ
if ($mysqli->more_results()) {
echo "ပိုပြီးရလဒ်အစုံရှိပါတယ်,အပြောင်းအလဲနဲ့ဆက်လက်ဆက်လက်ရန်အဆင်သင့်...\n";
} else {
echo "ရလဒ်အားလုံးလုပ်ငန်းများ၌ပါပြီ。\n";
}
} while ($mysqli->more_results() && $mysqli->next_result());
} else {
echo "Execution မအောင်မြင်ပါ: " . $mysqli->error;
}
$mysqli->close();
ဤဥပမာတွင်အောက်ပါသော့ချက်များကိုအသုံးပြုသည်။
MySQLI :: Multi_query ($ query)
ဒေတာဘေ့စ်မှ SQL ထုတ်ပြန်ချက်များပါ 0 င်သောမေးမြန်းချက်များကိုပေးပို့ပါ။
MySQLI :: Store_Result ()
လက်ရှိရလဒ် set ကိုရယူပါ။
MySQLI :: More_results ()
ကျန်ရှိနေသေးသောရလဒ်ရှိမရှိစစ်ဆေးပါ။
MySQLI :: Next_Result ()
နောက်ရလဒ်ကိုပြောင်းရွှေ့ရန်ဆက်လက်လုပ်ဆောင်နိုင်အောင်ဆက်လက်လုပ်ဆောင်နိုင်သည်။
MySQLi_More_Results () နှင့် mySqli_next_result () ကို ဆွဲယူ နေစဉ်ကွင်းဆက်ကိုချိတ်ဆက်နေစဉ် Next_result () မမှန်မကန်ဟုခေါ်ဆိုသည့်အခါ undefined အပြုအမူသို့မဟုတ်အမှားအယွင်းများကိုရှောင်ရှားရန်ရလဒ်အားလုံးကိုလုံခြုံစွာပြုလုပ်နိုင်သည်။
အချို့သော developer များသည် MySQLI_NEXT_RESELT () ကို ကွင်းဆက်တွင်တိုက်ရိုက်သုံးနိုင်သည်။
// မှားယွင်းသောအသုံးပြုမှု:မစစ်ဆေးပါ more_results() ခေါ်ပါ next_result()
while ($mysqli->next_result()) {
// အပြောင်းအလဲနဲ့ရလဒ်အစုံ
}
ထိုသို့ပြုလုပ်ခြင်းသည်နောက်ဆက်တွဲရလဒ်များမရှိဘဲသတိပေးချက်တစ်ခုသို့မဟုတ်အမှားတစ်ခုပြုလုပ်နိုင်သည်။ ထို့ကြောင့်ကျွန်ုပ်တို့သည် နောက်လာမည့် _Result () မခေါ်မီ ပိုမိုများပြားသော More_results () နှင့်အမြဲတမ်းစစ်ဆေးသင့်သည်။
MySQLI_MORE_RESULES () သည် Multi_query () ကိုအသုံးပြုပြီးနောက်ရလဒ်ပိုများများရှိမရှိဆုံးဖြတ်ရန်အရေးကြီးသောကိရိယာတစ်ခုဖြစ်သည်။ MySQLI_NEXET_NEXEt_RESELT () သည်အစီအစဉ်၏ကြံ့ခိုင်မှုကို 0 င်ရောက်နိုင်ခြင်းနှင့်ရလဒ်အနေဖြင့်ရလဒ်များကိုလက်လှမ်းမီမှုကြောင့်ဖြစ်ပေါ်လာသောအမှားများကိုလျော့နည်းစေနိုင်သည်။
အစီရင်ခံစာစနစ် (သို့) နောက်ခံအချက်အလက်အစုအနှောင်စာတုံတည်ဆောက်ခြင်းကဲ့သို့သောအမှန်တကယ်စီမံကိန်းများတွင်ဤနည်းစနစ်ကိုကျွမ်းကျင်စေခြင်းသည်သင်၏ PHP ပရိုဂရမ်များကိုပိုမိုယုံကြည်စိတ်ချရပြီးထိန်းသိမ်းနိုင်သည်။
ပိုမိုသိရှိလိုပါက ကျေးဇူးပြု. ကျွန်ုပ်တို့၏ဖွံ့ဖြိုးတိုးတက်မှုစာရွက်စာတမ်းများကို https://gitbox.net/docs များကို ကြည့်ပါ