ဒေတာဘေ့စ်လုပ်ငန်းများအတွက် PHP ကိုအသုံးပြုသောအခါအထူးသဖြင့် SQL Queries မျိုးစုံကိုအကောင်အထည်ဖော်သည့်အခါ နောက်တစ်ခေါက် () နည်းလမ်းကိုမကြာခဏလိုအပ်သည်။ Next_result () ၏ရည်ရွယ်ချက်မှာအရာဝတ်ထုကိုနောက်မေးခွန်းတစ်ခုအတွက်ရလဒ်အစုကိုပြောင်းရန်ဖြစ်သည်။ ဒါပေမယ့်ပြ problem နာက
Next_Result () boolean value ကိုပြန်ပို့သည်။
Reward True - နောက်ရလဒ် set ကိုနောက်ရလဒ်ကိုအောင်မြင်စွာပြောင်းနိုင်ပြီလား, နောက်ရလဒ် suther (ဥပမာအတန်းကိုမပြန်မလာသောထုတ်ပြန်ချက်များ)
False : ဆိုလိုသည်မှာဆိုလိုသည်မှာရလဒ်အနေဖြင့်ရလဒ်မရှိတော့ပါ။ သို့မဟုတ် switching process စဉ်အတွင်းအမှားတစ်ခုဖြစ်ပွားခဲ့သည်။
ထို့ကြောင့်တရားသူကြီးတို့အနေဖြင့်တိုက်ရိုက်လမ်းစဉ်သည် Next_result () ၏ပြန်လာတန်ဖိုးကိုစစ်ဆေးရန်ဖြစ်သည်။
ရိုးရှင်းတဲ့ဥပမာတစ်ခုကိုကြည့်ရအောင်။
<?php
$mysqli = new mysqli("localhost", "user", "password", "database");
// စုံစမ်းမှုများကိုမျိုးစုံလုပ်ဆောင်ပါ
$sql = "SELECT * FROM users; SELECT * FROM orders;";
if ($mysqli->multi_query($sql)) {
do {
if ($result = $mysqli->store_result()) {
// လက်ရှိရလဒ် set ကိုဖြစ်စဉ်
while ($row = $result->fetch_assoc()) {
echo "ဒေတာအတန်း:" . json_encode($row) . "<br>";
}
$result->free();
} else {
// လက်ရှိကြေညာချက်မဟုတ်ပါဘူး SELECT တူမမေးမြန်းခြင်း,ဖြစ်နိုင်စရာ UPDATE、INSERT စောင့်
if ($mysqli->errno) {
echo "ရလဒ် Saving Set မအောင်မြင်ပါ,အမှား:" . $mysqli->error . "<br>";
}
}
// လာမည့်ရလဒ်ကိုပြောင်းရန်ကြိုးစားပါ
if ($mysqli->more_results()) {
if (!$mysqli->next_result()) {
echo "လာမည့်ရလဒ်ကို switching မအောင်မြင်ပါ,အမှား:" . $mysqli->error . "<br>";
break;
}
} else {
// နောက်တဖန်ရလဒ်အစုံ
break;
}
} while (true);
} else {
echo "စုံစမ်းမှုများကိုမျိုးစုံလုပ်ဆောင်ပါ失败,အမှား:" . $mysqli->error;
}
$mysqli->close();
?>
ပျောက်ဆုံးနေသောအမှားရှာဖွေတွေ့ရှိခြင်းကိုရှောင်ရှားနိုင်ရန်အတွက် $ MySQLI-> ERRNO သည် 0 င် ရောက်ပြီး ချက်ချင်းပင် ချက်ချင်းစစ်ဆေးရန် အကြံပြုသည်။ မရရှိလျှင် 0 င ် ပါ က ,
ပိုမိုတိကျသောဗားရှင်းကိုဤကဲ့သို့သောရေးသားနိုင်ပါသည်။
if ($mysqli->more_results()) {
if (!$mysqli->next_result()) {
// 发生了切换အမှား
error_log("ရလဒ် s ကို set ကိုပြောင်းရန်ပျက်ကွက်:" . $mysqli->error);
break;
} elseif ($mysqli->errno) {
// next_result() ပြန်လာ true,但实际出现了အမှား
error_log("ပြောင်းခြင်းရလဒ် switching စဉ်အတွင်းခြွင်းချက်တစ်ခုဖြစ်ပွားခဲ့သည်:" . $mysqli->error);
break;
}
}
Next_result () သည်အောင်မြင်မှုရှိမရှိဆုံးဖြတ်ရန်မှာ -
Next_result () ၏ပြန်လာတန်ဖိုးမှာ မှန်ကန်မှု ရှိမရှိစစ်ဆေးပါ။
$ MySQLI-> ERRNO 0 င်ဟုတ်မဟုတ်စစ်ဆေးပါ။
Next_result ( ) ကို ခေါ်ရန်လိုအပ်လားဆိုတာကိုဆုံးဖြတ်ရန်အချိန်ကိုအချိန်မှန်သုံးပါ။
စုံစမ်းမှုများစွာသည်အလွန်အစွမ်းထက်သော်လည်းအမှားများကိုကိုင်တွယ်သောအခါသင်သတိထားရမည်။
Multi_query () နှင့် နောက်ဆက်တွဲ အသေးစိတ်အချက်အလက်များအကြောင်းပိုမိုသိရှိလိုပါက တရားဝင်စာရွက်စာတမ်းများ (နမူနာ url) ကိုရည်ညွှန်းနိုင်သည် (နမူနာ url, domain name ကို Gitin Bomne Name ကိုအစားထိုးနိုင်သည်)