လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Next_result () Multi_query () ကိုအစားထိုးလို့မရပါဘူး။ နှစ် ဦး စလုံး၏တာဝန်ဝတ္တရားများကိုနားလည်နိုင်သည်

Next_result () Multi_query () ကိုအစားထိုးလို့မရပါဘူး။ နှစ် ဦး စလုံး၏တာဝန်ဝတ္တရားများကိုနားလည်နိုင်သည်

gitbox 2025-05-01

PHP နှင့် MySQL တို့အကြားအပြန်အလှန်ဆက်သွယ်မှုစဉ်အတွင်း developer များမှာ multi_query () နှင့် Next_result () နှင့် အခြား functions များနှင့်အဆက်အသွယ်ရှိကြသည်။ သို့သော်အစပြုသူများသည်စာရွက်စာတမ်းများကိုဖတ်ရှုသောအခါသို့မဟုတ်၎င်းတို့အားဖွံ့ဖြိုးတိုးတက်ရန်ကြိုးစားနေသည့်အခါဤလုပ်ဆောင်ချက်နှစ် ခု၏ အသုံးပြုမှုကိုရှုပ်ထွေးစေသည်။

ဤဆောင်းပါးသည်တာ 0 ် 0 တ္တရားများ, လုပ်ငန်းယန္တရားများ ကို လေ့လာခြင်း,

Multi_query () ကဘာလဲ။

Multi_query () သည် PHP MySQLI extension တွင်လုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ၎င်း၏ function သည် SQL ထုတ်ပြန်ချက်များကိုချက်ချင်းလုပ်ဆောင်ရန် ဖြစ်သည်။ ဤ SQL ထုတ်ပြန်ချက်များကို semicolons ( ; ) ကို semicolons (;) တစ် ဦး long sql string ကိုဖွဲ့စည်းရန်။

 $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()) {
            while ($row = $result->fetch_assoc()) {
                print_r($row);
            }
            $result->free();
        }
    } while ($mysqli->next_result());
} else {
    echo "Execution မအောင်မြင်ပါ: " . $mysqli->error;
}

ဤဥပမာတွင် Multi_query () သည် Multi_Query () သည် Multi-letiery set processing စီးဆင်းမှုကိုစတင်သည်။ ထို့နောက်နောက်ဆက်တွဲ ဖော်ပြချက်တစ်ခုစီ၏ရလဒ်များကိုရယူသည်။

Next_Result () ၏အခန်းကဏ် the

Next_result () ၏တာ 0 န်သည် MySQLI ကိုနောက်ရလဒ်အဖြစ်တွန်းအားပေးရန် ဖြစ်သည်။ ၎င်းသည်မည်သည့် SQL ကိုမဆို execute မလုပ်နိုင်ပါ,

ဆိုလိုသည်မှာ Next_result () သူ့ဟာသူသည် SQL, ၎င်းကိုဖြတ်သန်းရုံမျှမက execute လုပ်ခြင်းမရှိပါ

Multi_query () , Next_result () မခေါ်ဆိုပါ။ အပေါ် မူတည်. ၎င်းအပေါ်မူတည်သည့်အခြေအနေတွင် "မျိုးစုံထုတ်ပြန်ချက်များကိုအကောင်အထည်ဖော်ခဲ့ခြင်း" ဖြစ်သည်။

ဘာကြောင့် Next_result () Multi_query () အစားထိုးလို့မရဘူးလား။

"Power Supping တွင်ချိတ်ဆက်စရာမလိုဘဲအဝေးထိန်းခလုတ်ဖြင့် TV ကိုအဘယ်ကြောင့်မဖွင့်နိုင်သနည်းဟုမေးခြင်းနှင့်တူသည်။ ဘာဖြစ်လို့လဲဆိုတော့ Next_Result () ဟာလုပ်ငန်းစဉ်စီးဆင်းမှုရဲ့အစိတ်အပိုင်းတစ်ခုဖြစ်ပြီးအရေးယူဆောင်ရွက်မှုကိုအစပြုရန်အစမှတ်ခြင်းမဟုတ်ပါ။

သတ်သတ်မှတ်မှတ်အကြောင်းပြချက်မှာအောက်ပါအတိုင်းဖြစ်သည် -

  1. ကွဲပြားခြားနားသောတာဝန်များ

    • Multi_query () () သည်ကာကွယ်ရေးအရာရှိဖြစ်သည်။

    • Next_Result () ကကြားဖြတ်သူပါ။

  2. မှီခိုမှု

    • multi_query () ၏အခြေအနေတွင် ()) ၏အခြေအနေမရှိလျှင် Next_result () ကိုခေါ်ဆိုခြင်း () သည် မှားယွင်းစွာ ပြန်လာလိမ့်မည်။

    • Next_result () Multi_query () ကိုအောင်မြင်စွာကွပ်မျက်ခံရပြီးကိုသာနားလည်သည်။

  3. ချို့ယွင်းချက်နှင့်ပြည်နယ်စီမံခန့်ခွဲမှုအမှား

    • Multi_query () သည်ထုတ်ပြန်ချက်များအားလုံးကိုအကောင်အထည်ဖော်ရန်နှင့်စတင်ရန်တာ 0 န်ရှိသည်။ အမှားတစ်ခုဖြစ်ပါကချက်ချင်းကြားဖြတ်နိုင်သည်။

    • Next_Result () သည် SQL ကိုပြန်လည်ရယူခြင်းသို့မဟုတ်ပြန်လည်ထူထောင်ခြင်းမပြုသည့်ရလဒ်အစုဖြစ်သည်။

မှန်ကန်သောအသုံးပြုမှုအခြေအနေများဥပမာ

ဇာတ်လမ်း - ဇယားကွက်ဖန်တီးမှုနှင့်ဒေတာထည့်သွင်းခြင်းကဲ့သို့သောလက်ခဏာမျိုးစုံထုတ်ပြန်ချက်များကိုအကောင်အထည်ဖော်ရန်

 $sql = "
    CREATE TABLE IF NOT EXISTS logs (id INT AUTO_INCREMENT PRIMARY KEY, message TEXT);
    INSERT INTO logs (message) VALUES ('အောင်မြင်စွာစတင်');
    SELECT * FROM logs;
";

$mysqli = new mysqli("localhost", "user", "password", "database");

if ($mysqli->multi_query($sql)) {
    do {
        if ($result = $mysqli->store_result()) {
            while ($row = $result->fetch_assoc()) {
                echo $row['message'] . "\n";
            }
            $result->free();
        }
    } while ($mysqli->next_result());
} else {
    echo "တစ်ခုကွပ်မျက်အမှား: " . $mysqli->error;
}

ဤလျှောက်လွှာကိုဖြန့်ကျက်သော scripts, data data scastization စသည့်အခြေအနေများတွင်ဤ application တွင်သင်အသုံးပြုနိုင်သည်။

ကောက်ချက်

PHP Database Programming, Multi_query () နှင့် Next_result () တွင်အတူတကွအသုံးပြုသောကိရိယာများဖြစ်သည်။ ယခင်ကထုတ်ပြန်ချက်အရဒေတာဘေ့စ်သို့အချက်အလက်များစွာပေးပို့ရန်တာ 0 န်ရှိသည်။

SQL ထုတ်ပြန်ချက်များကို execute လုပ်ရန် Next_result () ကိုအသုံးပြုရန်ကြိုးစားခြင်းသည် "TV ကိုအဝေးမှထိန်းချုပ်မှုနှင့်အတူသာပြောင်းလဲရန်" နှင့်ညီမျှသည်။ ၎င်းသည်လုပ်ငန်းကိုလွတ်လပ်စွာမဖြည့်ဆည်းနိုင်ပါ။ သူတို့၏သက်ဆိုင်ရာတာဝန်များနှင့်အခြေအနေများကိုအပြည့်အဝနားလည်ခြင်းအားဖြင့်သာထိရောက်စွာတည်ငြိမ်ပြီးတည်ငြိမ်သောဒေတာဘေ့စ်အပြန်အလှန်ဆက်သွယ်မှုကုဒ်ကိုရေးသားနိုင်သည်။

အကယ်. သင်သည်အခြားဖော်ပြချက်များကို သုံး. multi-statement multi-statement uncount ကိုတင်ဆက်ခြင်းဖြင့် test interface ကို သုံး. Multipps://gitbox.net/api/apiql-exec သို့တင်ပြရန် Multi_query () ၏အကျိုးသက်ရောက်မှုကိုတုပရန်လည်းမှတ်စုပေါင်းစုံလုပ်ဆောင်မှုနည်းလမ်းကိုသုံးရန်သတိရသင့်သည်။