PHP တွင်ဒေတာဘေ့စ်လုပ်ငန်းလည်ပတ်မှုများကိုလုပ်ဆောင်သောအခါတစ်ခါတစ်ရံတွင်ကျွန်ုပ်တို့သည်စုံစမ်းမှုရလဒ်မျိုးစုံကိုပြုလုပ်ရန်လိုအပ်သည့်အခြေအနေများနှင့်ကြုံတွေ့ရသည်။ ရိုးရာတစ်ခုတည်းစုံစမ်းမှုရလဒ်ကိုကိုင်တွယ်ရန်အတော်လေးရိုးရှင်းပါသည်။ ကံကောင်းထောက်မစွာ, MySQL ၏ Next_Result () function သည်ကျွန်ုပ်တို့အားလှပသောဖြေရှင်းနည်းတစ်ခုဖြင့်ကျွန်ုပ်တို့ကိုပြေကာအထူးသဖြင့်ရှုပ်ထွေးသောဒေတာဘေ့စ်အသုတ်ဖျော်ဖြေတင်ဆက်သည့်အခါသိသိသာသာတိုးတက်စေနိုင်သည်။
Next_result () သည် MySQLI extension မှလက်ရှိစုံစမ်းမှုရလဒ်ကိုနောက်ရလဒ်ရရှိရန်အတွက်ထောက်ပံ့ပေးသောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ကျွန်ုပ်တို့သည်မေးခွန်းမျိုးစုံထုတ်ပြန်ချက်များစွာကိုချက်ချင်းလုပ်ဆောင်သည်ဆိုပါစို့။ Next_result () က ဤမေးမြန်းချက်များကိုရလဒ်များအားဖြင့်လုပ်ဆောင်ရန်ခွင့်ပြုသည်ဆိုပါစို့။
PHP တွင် SQL Query မျိုးစုံကိုအကောင်အထည်ဖော်သည့်အခါ Multi_query () နည်းလမ်းကိုများသောအားဖြင့်အသုံးပြုလေ့ရှိပြီး Next_result () သည်စုံစမ်းမှုရလဒ်အစုအဝေး () Multi_Query () နှင့်ပူးပေါင်းရန်ကိရိယာတစ်ခုဖြစ်သည်။
ပထမ ဦး စွာကျွန်ုပ်တို့သည် MySQLI extension ကိုသုံးရန်လိုအပ်သည် ။ ဒီမှာသော့ချက်ကတော့ Multi_query () မှာ SQL ထုတ်ပြန်ချက်တွေကိုတစ်ချိန်တည်းမှာဒေတာဘေ့စ်ကိုတင်လိမ့်မယ်။
<?php
// ဒေတာဘေ့စ် connection တစ်ခုဖန်တီးပါ
$mysqli = new mysqli("localhost", "username", "password", "database");
// ဆက်သွယ်မှုအောင်မြင်မှုရှိမရှိစစ်ဆေးပါ
if ($mysqli->connect_error) {
die("Connection failed: " . $mysqli->connect_error);
}
// မျိုးစုံရှာဖွေမှုထုတ်ပြန်ချက်များ execute
$sql = "SELECT * FROM users; SELECT * FROM orders; SELECT * FROM products;";
if ($mysqli->multi_query($sql)) {
do {
// လက်ရှိစုံစမ်းမှု၏ရလဒ်အစုကိုရယူပါ
if ($result = $mysqli->store_result()) {
// အပြောင်းအလဲနဲ့ရလဒ်အစုံ
while ($row = $result->fetch_assoc()) {
echo "User ID: " . $row["id"] . " - Name: " . $row["name"] . "<br>";
}
// လက်ရှိရလဒ်ကိုလွှတ်ပေးရန်
$result->free();
}
// နောက်ရလဒ်ကိုရယူပါ
} while ($mysqli->next_result());
}
// ဆက်သွယ်မှုကိုပိတ်ပါ
$mysqli->close();
?>
Multi_Query () - ဤလုပ်ဆောင်ချက်သည် SQL query ထုတ်ဖော်ပြောကြားချက်များကိုဒေတာဘေ့စ်သို့အတူတကွစုစည်းလိမ့်မည်။ ကွပ်မျက်အောင်မြင်သောအောင်မြင်လျှင်ဒါဟာ ပြန်လည်ရောက်ရှိ ။
Loop : ဤအရာကိုပြန်လာသောရလဒ်အစုံများမှတဆင့်ဤအရာကိုအသုံးပြုသည်။ တစ်ခုချင်းစီကိုဖုန်းခေါ်ဆိုပြီးနောက် _result () , store_result () function ကိုပြန်အမျှော်ထခြင်းလာမယ့်ရလဒ်။
Next_Result () - ရလဒ်တစ်ခုစီ၏ရလဒ်အစုကိုကျွန်ုပ်တို့ကိုင်တွယ်နိုင်ရန်အတွက်ရလဒ်မျိုးစုံအကြားပြောင်းရန်အသုံးပြုသည်။
လက်တွေ့ကျသောအပလီကေးရှင်းများတွင်အချက်အလက်အမြောက်အများကိုလုပ်ဆောင်ရန်လိုအပ်သည့်အခြေအနေများကြုံတွေ့ရနိုင်သည်။ ဥပမာအားဖြင့်, ဒေတာဘေ့စ်၏အသုတ်အသစ်များကိုမွမ်းမံမှုများသို့မဟုတ်အကြီးစားစာရင်းဇယားများကိုတွက်ချက်သည်။ အကယ်. စုံစမ်းမှုများကို multi_query () နှင့် နောက်ဆက်တွဲ () quesult () တွင်အသုံးပြုသောမေးမြန်းချက်မျိုးစုံနှင့်အတူအသုံးပြုပါက၎င်းသည်မေးမြန်းချက်မျိုးစုံကိုအကောင်အထည်ဖော်ရန်အတွက်ကွပ်မျက်မှုစွမ်းရည်ကိုသိသိသာသာတိုးတက်စေနိုင်သည်။
ဤတွင်ပိုမိုရှုပ်ထွေးသောဥပမာတစ်ခုမှာအသုတ်ခွဲစိတ်ကုသမှုတစ်ခုတွင်မေးမြန်းချက်မျိုးစုံကိုမည်သို့အကောင်အထည်ဖော်နိုင်ပြီးပြန်လည်ပြုပြင်ခြင်းကို အခြေခံ. ကွဲပြားခြားနားသောအချက်အလက်များအပေါ် အခြေခံ. ကွဲပြားခြားနားသောအပြောင်းအလဲများပြုလုပ်ရန်မည်သို့ပြုလုပ်သည်ကိုပြသသော ပို. ရှုပ်ထွေးသောဥပမာတစ်ခုဖြစ်သည်။
<?php
// ဒေတာဘေ့စ် connection တစ်ခုဖန်တီးပါ
$mysqli = new mysqli("localhost", "username", "password", "database");
if ($mysqli->connect_error) {
die("Connection failed: " . $mysqli->connect_error);
}
$sql = "
SELECT id, name FROM users;
SELECT COUNT(*) AS order_count FROM orders WHERE user_id = 1;
SELECT * FROM products WHERE price > 100;
";
if ($mysqli->multi_query($sql)) {
do {
// အသုံးပြုသူစုံစမ်းမှုရလဒ်များ process
if ($result = $mysqli->store_result()) {
while ($row = $result->fetch_assoc()) {
echo "User ID: " . $row["id"] . " - Name: " . $row["name"] . "<br>";
}
$result->free();
}
// ထုတ်ယူအမိန့်အရေအတွက်စုံစမ်းမှုရလဒ်များ
if ($result = $mysqli->store_result()) {
$row = $result->fetch_assoc();
echo "Total Orders: " . $row["order_count"] . "<br>";
$result->free();
}
// Process ထုတ်ကုန်စုံစမ်းမှုရလဒ်များ
if ($result = $mysqli->store_result()) {
while ($row = $result->fetch_assoc()) {
echo "Product: " . $row["name"] . " - Price: " . $row["price"] . "<br>";
}
$result->free();
}
} while ($mysqli->next_result());
}
$mysqli->close();
?>
Next_result () မရှိခြင်းသည်များသောအားဖြင့်စုံစမ်းမှုတစ်ခုပြုလုပ်ပါကအချိန်တိုင်းတိုင်းလာမည့်စစ်ဆင်ရေးမလုပ်မီပြန်လာရန်ရလဒ်ကိုစောင့်ဆိုင်းရန်လိုအပ်သည်။ ထို့အပြင် Multiery_Query () နှင့် နောက်လာမည့် _result () မှတစ်ဆင့်ကျွန်ုပ်တို့သည်စုံစမ်းမှုတောင်းဆိုမှုများကိုတစ်ပြိုင်နက်တည်းပေးပို့နိုင်သည်။ ဤချဉ်းကပ်မှုသည်ဒေတာဘေ့စ်ဆက်သွယ်မှုများအနက် overhead ကိုလျှော့ချနိုင်ပြီးပြုပြင်ထုတ်လုပ်ခြင်းသည်စဉ်ဆက်မပြတ်ဖြစ်သည်။
အထက်ပါဥပမာများနှင့်ရှင်းလင်းချက်များမှတစ်ဆင့် PHP ရှိ Multi-respious function ကိုထိရောက်စွာလုပ်ဆောင်ရန်အတွက် PHP မှ တုန့် ပြန်မှုအမျိုးမျိုးကိုအသုံးပြုခြင်းသည်အလွန်အစွမ်းထက်။ လက်တွေ့ကျသောနည်းလမ်းတစ်ခုဖြစ်သည်။ ၎င်းသည်ဒေတာဘေ့စ်အပြန်အလှန်ဆက်သွယ်မှုအရေအတွက်ကိုလျှော့ချရန်သာမကစုံစမ်းမှုစွမ်းအားစွမ်းဆောင်ရည်ကိုလည်းတိုးတက်စေရုံသာမက,