လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> နောက်လာမည့်ရလဒ်ကိုအောင်မြင်စွာပြောင်းလဲနိုင်သည့်နောက်ရလဒ်ကိုအောင်မြင်စွာမည်သို့ပြောရမည်နည်း။

နောက်လာမည့်ရလဒ်ကိုအောင်မြင်စွာပြောင်းလဲနိုင်သည့်နောက်ရလဒ်ကိုအောင်မြင်စွာမည်သို့ပြောရမည်နည်း။

gitbox 2025-05-02

ဒေတာဘေ့စ်လုပ်ငန်းများအတွက် PHP ကိုအသုံးပြုသောအခါအထူးသဖြင့် SQL Queries မျိုးစုံကိုအကောင်အထည်ဖော်သည့်အခါ နောက်တစ်ခေါက် () နည်းလမ်းကိုမကြာခဏလိုအပ်သည်။ Next_result () ၏ရည်ရွယ်ချက်မှာအရာဝတ်ထုကိုနောက်မေးခွန်းတစ်ခုအတွက်ရလဒ်အစုကိုပြောင်းရန်ဖြစ်သည်။ ဒါပေမယ့်ပြ problem နာက

Next_Result ၏တန်ဖိုးကိုပြန်ပို့ပါ ()

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();
?>

Sefery mode

ပျောက်ဆုံးနေသောအမှားရှာဖွေတွေ့ရှိခြင်းကိုရှောင်ရှားနိုင်ရန်အတွက် $ 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 () သည်အောင်မြင်မှုရှိမရှိဆုံးဖြတ်ရန်မှာ -

  1. Next_result () ၏ပြန်လာတန်ဖိုးမှာ မှန်ကန်မှု ရှိမရှိစစ်ဆေးပါ။

  2. $ MySQLI-> ERRNO 0 င်ဟုတ်မဟုတ်စစ်ဆေးပါ။

  3. Next_result ( ) ကို ခေါ်ရန်လိုအပ်လားဆိုတာကိုဆုံးဖြတ်ရန်အချိန်ကိုအချိန်မှန်သုံးပါ။

စုံစမ်းမှုများစွာသည်အလွန်အစွမ်းထက်သော်လည်းအမှားများကိုကိုင်တွယ်သောအခါသင်သတိထားရမည်။

Multi_query () နှင့် နောက်ဆက်တွဲ အသေးစိတ်အချက်အလက်များအကြောင်းပိုမိုသိရှိလိုပါက တရားဝင်စာရွက်စာတမ်းများ (နမူနာ url) ကိုရည်ညွှန်းနိုင်သည် (နမူနာ url, domain name ကို Gitin Bomne Name ကိုအစားထိုးနိုင်သည်)