PHP application များကိုတီထွင်သည့်အခါ, PHP တွင်ဤရလဒ်မျိုးစုံကိုမည်သို့မှန်ကန်စွာကိုင်တွယ်ဖြေရှင်းရမည်နည်း PHP တွင်အလွန်အရေးကြီးသည်မှာအလွန်အရေးကြီးသောမေးခွန်းတစ်ခုဖြစ်သည်။ PHP အတွက် MySQLI extension သည်ဤရည်မှန်းချက်အောင်မြင်ရန်ကူညီနိုင်သည့် Next_result () ဟုခေါ်သောနည်းလမ်းကိုပေးသည်။
ကျွန်ုပ်တို့သည်ဒေတာဘေ့စ်တွင်သိုလှောင်ထားသည့်လုပ်ထုံးလုပ်နည်းကိုလုပ်ဆောင်သောအခါရလဒ်မျိုးစုံကိုပြန်လည်ပေးပို့နိုင်သည်။ ၎င်းသည်ဒေတာဘေ့စ်လည်ပတ်မှုတစ်ခုတည်းတွင်ကွဲပြားခြားနားသောဒေတာများကိုရယူခြင်းကဲ့သို့သောရှုပ်ထွေးသောမေးမြန်းချက်များကိုကိုင်တွယ်ရာတွင်၎င်းသည်အသုံးဝင်သည်။ ကျွန်ုပ်တို့၏သိမ်းဆည်းထားသောလုပ်ထုံးလုပ်နည်းသည်သုံးစွဲသူ၏အခြေခံအချက်အလက်များ, သုံးစွဲသူ၏အမိန့်သမိုင်းနှင့်သုံးစွဲသူ၏ငွေပေးချေမှုမှတ်တမ်းများကိုရလဒ်သုံးခုကိုပြန်လည်ရရှိခဲ့သည်ဆိုပါစို့။ ဒီရလဒ်ကိုတစ်ခုသတ်မှတ်ထားဖို့လိုတယ်။
ပထမ ဦး စွာကျွန်ုပ်တို့သည် MySQLI နှင့်သိုလှောင်ထားသောလုပ်ထုံးလုပ်နည်းများကို execute လုပ်ရန်လိုအပ်သည်။ ဤတွင်သိမ်းဆည်းထားသည့်လုပ်ထုံးလုပ်နည်းများကိုမည်သို့ခေါ်ရမည်ကိုပြသသောအခြေခံ PHP ဥပမာတစ်ခုမှာရလဒ်ကိုရရှိခဲ့သည်။
<?php
// ဒေတာဘေ့စ်ကိုဆက်သွယ်ပါ
$mysqli = new mysqli("localhost", "username", "password", "database_name");
// ဆက်သွယ်မှုအောင်မြင်မှုရှိမရှိစစ်ဆေးပါ
if ($mysqli->connect_error) {
die("ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $mysqli->connect_error);
}
// သိမ်းထားသောလုပ်ထုံးလုပ်နည်းများကို execute လုပ်ပါ
$query = "CALL your_stored_procedure()";
if ($result = $mysqli->query($query)) {
// ဖြစ်စဉ်ကိုပထမရလဒ် set ကို
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
echo "အသုံးပြုသူID: " . $row["user_id"] . " - နံမယ်: " . $row["name"] . "<br>";
}
}
// နောက်ရလဒ်ကိုရယူပါ
if ($mysqli->more_results()) {
$mysqli->next_result();
// ဒုတိယရလဒ်ကိုထုတ်ယူခြင်း
if ($result = $mysqli->store_result()) {
while ($row = $result->fetch_assoc()) {
echo "အမိန့်ID: " . $row["order_id"] . " - စုပေါင်း: " . $row["amount"] . "<br>";
}
}
}
// နောက်ရလဒ်ကိုရယူပါ
if ($mysqli->more_results()) {
$mysqli->next_result();
// တတိယရလဒ် set ကို processing
if ($result = $mysqli->store_result()) {
while ($row = $result->fetch_assoc()) {
echo "အခပေးID: " . $row["payment_id"] . " - အသေအချာပေြာဆို: " . $row["status"] . "<br>";
}
}
}
} else {
echo "အမှား: " . $mysqli->error;
}
// ဆက်သွယ်မှုကိုပိတ်ပါ
$mysqli->close();
?>
Rostored_Procedure () ကိုခေါ်ပါ ။ သိုလှောင်ထားသောလုပ်ထုံးလုပ်နည်းများကို execute လုပ်ပါ။
$ MySQLI-> စုံစမ်းမှု ($ query) : query ကိုဒေတာဘေ့စ်သို့ပို့ပါ။
More_results () : ရလဒ်ပိုများသည်ရရှိနိုင်ပါကစစ်ဆေးပါ။
Next_result () : နောက်ရလဒ်ကိုရယူပါ။ PHP တွင်, နောက်ရလဒ်ကိုမှန်ကန်စွာရွှေ့ရန် Next_result () ကို ခေါ်ရန်လိုအပ်သည်။
Store_Result () - လက်ရှိရလဒ်အနေဖြင့်အချက်အလက်များကိုထုတ်ယူပါ။
ရလဒ်အစုအမျိုးမျိုးနှင့်အလုပ်လုပ်သောအခါမှတ်သားရန်အဓိကအချက်များရှိသည်။
ရလဒ် များစွာကိုသင်မေးမြန်းသည့်အခါတိုင်းသင်ပိုမိုရလဒ်ရှိမရှိကိုပထမ ဦး ဆုံးစစ်ဆေးရမည်။ ရလဒ်မရှိတော့သည့်အခါ ပိုမိုများပြားလာ သည့်အခါ ပိုမိုများပြားလာ သည်။
Next_Result () : နောက်တစ်ခါ action_result () တစ်ခုချင်းစီကိုကွပ်မျက်ပြီးနောက် MySQLI သည်နောက်ရလဒ်ကိုအလိုအလျောက်ခုန်လိမ့်မည်။ ဤအချိန်တွင်သင်သည်ရလဒ်အသစ်ကိုရယူရန်နှင့်လုပ်ငန်းစဉ်ကိုရယူရန် Store_Result () ကို သုံးနိုင်သည်။
ရလဒ်များကိုရှောင်ရှားခြင်းများကိုရှောင်ရှားခြင်းပ conflicts ိပက်ခများပ conflicts ိပက် ခ များ။
အမှားကိုင်တွယ်ခြင်း - query တစ်ခုချင်းစီကိုအကဲဖြတ်ခြင်းမပြုမီနှင့်ပြီးနောက်အမှားစစ်ဆေးခြင်းကိုသေချာစွာပြုလုပ်ပါ။ အကယ်. ခြေလှမ်းမအောင်မြင်ပါကအမှားမက်ဆေ့ခ်ျကို MySQLI_ERROR ($ MySQLI) မှတဆင့်ရနိုင်သည်။
Performance Optimization - သင်၏ရှာဖွေမှုနှင့်သိုလှောင်ထားသည့်လုပ်ထုံးလုပ်နည်းဒီဇိုင်းကိုရလဒ်မျိုးစုံကိုလုပ်ဆောင်သောအခါသေချာအောင်လုပ်ပါ။ ရှုပ်ထွေးသောမေးမြန်းချက်များစွာရှိပါက၎င်းတို့ကိုခွဲစိတ်မှုတစ်ခု၏ရှုပ်ထွေးမှုကိုလျှော့ချရန်သီးခြားသိုလှောင်ထားသည့်လုပ်ထုံးလုပ်နည်းများကိုခွဲထုတ်ရန်စဉ်းစားနိုင်သည်။