PHP တွင်ဒေတာဘေ့စ်လုပ်ငန်းများအတွက် MySQLI extension များကိုအသုံးပြုသောအခါရလဒ်အမျိုးမျိုးနှင့်သက်ဆိုင်သောအခြေအနေကိုကျွန်ုပ်တို့ကြုံတွေ့ရနိုင်သည်။ အထူးသဖြင့်သိုလှောင်ထားသည့်လုပ်ထုံးလုပ်နည်းများ (သို့) စုံစမ်းမှုဖော်ပြချက်များ, Newerult () နှင့် store_result () သည်အသုံးများသောလုပ်ဆောင်ချက်နှစ်ခုဖြစ်သည်။ ဤဆောင်းပါးတွင်မေးမြန်းချက်များစွာကိုမှန်ကန်စွာလုပ်ဆောင်နိုင်ရန်ဤလုပ်ဆောင်မှုနှစ်ခုသည်မည်သို့အတူတကွလုပ်ဆောင်သည်ကိုကျွန်ုပ်တို့လေ့လာပါမည်။
Store_Result () - ဤလုပ်ဆောင်ချက်သည်စုံစမ်းမှုရလဒ်များကိုမှတ်ဉာဏ်တွင်သိမ်းဆည်းရန်အသုံးပြုသည်။ ၎င်းသည်ဒေတာအားလုံးကိုတစ်ပြိုင်နက်တည်းဖတ်ပြီး MySQLI_RESult Object တွင်၎င်းကိုသိမ်းဆည်းသည်။
Next_result () - ဤလုပ်ဆောင်မှုသည်မေးမြန်းမှုအမြောက်အများထုတ်ပြန်ချက်များကိုလုပ်ဆောင်ရန်အသုံးပြုသည်။ စုံစမ်းမှုများစွာကွပ်မျက်ခံရသောအခါ၎င်းကိုနောက်ရလဒ်ကိုညွှန်ပြရန်အသုံးပြုသည်။ ရလဒ်အစုအဝေးများတည်ရှိပါက Next_result () ကို ခေါ်ဆိုခြင်းသည်သင့်အားစုံစမ်းမှုတစ်ခုစီ၏ရလဒ်များမှတစ်ဆင့်ကြားနာရန်ခွင့်ပြုသည်။
မေးမြန်းမှုများစွာပါ 0 င်သော SQL ကြေငြာချက်ကိုသင်ကွပ်ကဲသည့်အခါ (ဥပမာ, ရွေးချယ်ထားသော မေးမြန်းချက်များ (သို့) ရလဒ်များတွင်ရလဒ်မျိုးစုံ) ကိုသင်သေချာစွာဖတ်ရှုခြင်းနှင့်မှန်ကန်စွာပြုလုပ်ရန်သေချာသည်။ ဤကိစ္စတွင် Store_Result () သည်လက်ရှိစုံစမ်းမှု၏ရလဒ်များကိုသိမ်းဆည်းရန်အသုံးပြုသည်, Next_result () နောက်ရလဒ်ကိုညွှန်ပြရန်အသုံးပြုသည်။
ကျွန်ုပ်တို့တွင်ဒေတာဘေ့စ်တစ်ခုရှိပြီးသိုလှောင်ထားသည့်လုပ်ထုံးလုပ်နည်း getmultipleresults () သည် စုံစမ်းမှုရလဒ်များကိုပြန်ပို့သည်ဆိုပါစို့။ ရလဒ်အစုတစ်ခုစီကိုဖတ်နိုင်အောင်ပြုလုပ်နိုင်ရန်နှင့်လက်ရှိရလဒ်ကိုသိုလှောင်ရန် Store_Result () ကို အသုံးပြုရန်လိုအပ်သည်။ ထို့နောက်နောက်ရလဒ်ကိုရရှိရန် Next_result () ကို သုံးပါ။
<?php
// ဆက်သွယ်မှုတစ်ခုဖန်တီးပါ
$mysqli = new mysqli("localhost", "user", "password", "database");
// ဆက်သွယ်မှုကိုစစ်ဆေးပါ
if ($mysqli->connect_error) {
die("ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $mysqli->connect_error);
}
// တစ် ဦး စုံစမ်းမှု execute
$query = "CALL getMultipleResults()";
if ($mysqli->multi_query($query)) {
do {
// လက်ရှိရလဒ် set ကိုသိမ်းထားပါ
if ($result = $mysqli->store_result()) {
// အပြောင်းအလဲနဲ့ရလဒ်အစုံ
while ($row = $result->fetch_assoc()) {
echo "ID: " . $row['id'] . " Name: " . $row['name'] . "<br>";
}
$result->free();
}
// နောက်ရလဒ်ကိုရယူပါ
} while ($mysqli->next_result());
} else {
echo "စုံစမ်းမှုမအောင်မြင်ပါ: " . $mysqli->error;
}
// ဆက်သွယ်မှုကိုပိတ်ပါ
$mysqli->close();
?>
အထက်ပါကုဒ်၌:
မေးမြန်းချက်များစွာပါ 0 င်သည့် SQL ကြေငြာချက် Multi_Query () ကို အသုံးပြု. အကောင်အထည်ဖော်သည်။
တစ် ဦး လုပ်ပါ ... စုံစမ်းမှုရလဒ်အစုတခုစီကို loop လုပ်ပါ။
Store_Result () လက်ရှိစုံစမ်းမှုသည်မှတ်ဥာဏ်ကိုရရှိသည်။
ဒေတာအတန်းတစ်ခုစီကို Fetch_AssoC () နည်းလမ်းဖြင့် ဖြတ်. ပြပါ။
ရလဒ်များမရှိတော့သည်အထိလာမည့်စုံစမ်းမှုကိုရရှိရန်အတွက် Next_result () ကိုသုံးပါ။
မှတ်ဥာဏ်အသုံးပြုမှု - အကယ်. စုံစမ်းမှု ရလဒ်သည်ကြီးမားလာပါက, ဤအချိန်တွင်သင်သည် quer_result () ကို အသုံးပြု. Request ရလဒ်များကိုလိုင်းအားဖြင့်ဖတ်ရှုနိုင်ရန်အချက်အလက်များကိုလိုင်းအားဖြင့်ဖတ်ရှုနိုင်ရန်စဉ်းစားနိုင်သည်။
စုံစမ်းမှုအမိန့် - Multi_query () နှင့် အတူမေးမြန်းချက်မျိုးစုံကိုအကောင်အထည်ဖော်သောအခါ query တစ်ခုချင်းစီကိုမှန်ကန်စွာပြန်လည်မှန်ကန်စွာပြန်လည်ရောက်ရှိစေကြောင်းသေချာပါစေ။
အမှားကိုင်တွယ်ခြင်း - စုံစမ်းမှုပျက်ကွက်မှုကြောင့်အမှားများမဖြစ်ပေါ်စေရန်သေချာစေရန်စုံစမ်းမှုတစ်ခုစီ၏ကွပ်မျက်မှုအခြေအနေကိုသေချာစစ်ဆေးပါ။
Next_result () နှင့် store_result () ကိုပေါင်းစပ်ခြင်းအားဖြင့် PHP တွင်ရလဒ်မျိုးစုံကိုသင်ကိုင်တွယ်နိုင်သည်, သိုလှောင်ထားသောလုပ်ထုံးလုပ်နည်းများသို့မဟုတ်မေးမြန်းချက်များစွာပါ 0 င်သောအခြေအနေများအတွက်အလွန်အသုံးဝင်သည်။ ကုဒ်၏ပြောင်းလွယ်ပြင်လွယ်မှုနှင့်တည်ငြိမ်မှုကိုများစွာတိုးတက်စေနိုင်သည်။