လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> 【 MySQLI :: After_rows 】 query တွင်အသုံးပြုရန်ကြိုတင်ကာကွယ်မှုများ (Multi_query) တွင်အသုံးပြုရန်ကြိုတင်ကာကွယ်မှုများပြုလုပ်ရန်ကြိုတင်ကာကွယ်မှုများ

【 MySQLI :: After_rows 】 query တွင်အသုံးပြုရန်ကြိုတင်ကာကွယ်မှုများ (Multi_query) တွင်အသုံးပြုရန်ကြိုတင်ကာကွယ်မှုများပြုလုပ်ရန်ကြိုတင်ကာကွယ်မှုများ

gitbox 2025-05-28

ဒေတာဘေ့စ်လုပ်ငန်းများအတွက် PHP ၏ MySQLI Extension ကိုအသုံးပြုသောအခါ Multi_Query function သည် Multi_query function သည်ကျွန်ုပ်တို့အား SQL ထုတ်ပြန်ချက်များကိုတစ်ပြိုင်နက်တည်းလုပ်ဆောင်ရန်ခွင့်ပြုသည်။ သို့သော်ထုတ်ပြန်ချက်များစွာကိုအကောင်အထည်ဖော်ပြီးနောက်, ဘေးဒဏ်သင့်သည့်အတန်းများကိုမည်သို့မှန်ကန်စွာရယူနိုင်ပုံ ( ထိခိုက်မှားသော )

ဤဆောင်းပါးသည် MySQLI :: abily_rows ကို ပေါင်းစပ်ပါလိမ့်မည်


1 ။ MySQLI :: After_rows ၏အခြေခံအသုံးပြုမှု

MySQLI :: After_rows သည် MySQLI အရာဝတ်ထုများ၏ attribute တစ်ခုဖြစ်ပြီး ထုတ်ပြန်ချက်များ ကို လတ်တလောအကောင်အထည်ဖော်မှု , တစ်ခုတည်း SQL ထုတ်ပြန်ကြေငြာချက်သည်အလွန်အလိုလိုသိသည်။

 $mysqli = new mysqli('gitbox.net', 'user', 'password', 'database');
$mysqli->query("UPDATE users SET status=1 WHERE last_login > NOW() - INTERVAL 30 DAY");
echo "ထိခိုက်အတန်းအရေအတွက်: " . $mysqli->affected_rows;

ဤနောက်ဆုံးသတင်းကြေငြာချက်ကိုအကောင်အထည်ဖော်ပြီးနောက် ဘေးဒဏ်သင့်သည့် အချက်များသည်ထိခိုက်နစ်နာမှုကိုသက်ရောက်စေသည်။


2 ။ Multi_query နှင့် Tabrows အကြားဆက်နွယ်မှု

Multi_query သည် တစ်ချိန်တည်းတွင် SQL ထုတ်ပြန်ချက်များကိုအကဲဖြတ်ရန်ခွင့်ပြုသည်။

 $sql = "UPDATE users SET status=1 WHERE id=1;";
$sql .= "UPDATE users SET status=2 WHERE id=2;";
$mysqli->multi_query($sql);

သို့သော်ယခုအချိန်တွင် ဘေးဒဏ်သင့်သူများ၏ တန်ဖိုးသည်အဘယ်အရာဖြစ်မည်နည်း။ အဖြေမှာ - ထိခိုက်နစ်နာမှုသည် လက်ရှိလုပ်ဆောင်နေသည့်ရလဒ်နှင့်သက်ဆိုင်သောဘေးဒဏ်သင့်သည့်အတန်းအရေအတွက်ကိုသာထင်ဟပ်ပြသည်။ Multi_query သည် ကြေငြာချက်တစ်ခုစီ၏ရလဒ်များကိုဖြတ်သန်းရန်လိုအပ်သည့်အတွက်၎င်းကိုတစ်ခုဖြင့်တစ်ခုရယူရန်လိုအပ်သည်။


3 ။ Multiery အတွက်ကြေငြာချက်တစ်ခုစီအတွက် အကျိုးသက်ရောက်မှုကို မှန်ကန်စွာရယူပါ

နမူနာကုဒ်:

 $mysqli = new mysqli('gitbox.net', 'user', 'password', 'database');

$sql = "UPDATE users SET status=1 WHERE id=1;";
$sql .= "UPDATE users SET status=2 WHERE id=2;";
$sql .= "DELETE FROM logs WHERE created_at < NOW() - INTERVAL 30 DAY;";

if ($mysqli->multi_query($sql)) {
    do {
        // လက်ရှိရလဒ်အတွက်ထိခိုက်သောအတန်းအရေအတွက်ကိုရယူပါ
        echo "ထိခိုက်အတန်းအရေအတွက်: " . $mysqli->affected_rows . "\n";

        // လာမည့်ရလဒ်လုပ်ငန်းစဉ်ကိုပြင်ဆင်ရန်ပြင်ဆင်ပါ
    } while ($mysqli->more_results() && $mysqli->next_result());
} else {
    echo "Execution မအောင်မြင်ပါ: " . $mysqli->error;
}

ဤနေရာတွင်ကျွန်ုပ်တို့အသုံးပြုသည် ကွပ်မျက်မှုတစ်ခုစီတိုင်းတွင်ကြေငြာချက်တစ်ခုစီကိုထိခိုက်သောအတန်းအရေအတွက်ကိုတိကျစွာရရှိရန်လက်ရှိ ထိခိုက်နစ်နာမှုကို ဖတ်ရှုသည်။


4 ။ ဘေးဒဏ်သင့်သူကို အသုံးပြုသောအခါအာရုံစူးစိုက်မှုကိုဂရုပြုရန်ပြ issues နာများစွာ

  1. Multi_query ကို Next_result () ရလဒ်များကိုဖြတ်သန်းရန်အတွက်ပူးပေါင်းဆောင်ရွက်ရန်အသုံးပြုရမည် အကယ်. သင်သည် Next_result () ဟုမခေါ်ပါကသင်၏ပထမအကြိမ်ကြေငြာချက်၏ ဘေးဒဏ်သင့်သည့်ကြေညာချက်များကို သာရနိုင်ပြီးနောက်ဆက်တွဲထုတ်ပြန်ချက်များကိုလျစ်လျူရှုလိမ့်မည်။

  2. အချို့ထုတ်ပြန်ချက်များသည်အတန်းအရေအတွက်ကိုအကျိုးသက်ရောက်မည်မဟုတ်ပါ ဥပမာအားဖြင့်, Selected Statement -1 -1 ။ အချက်အလက်များကိုပြုပြင်မွမ်းမံသောထုတ်ပြန်ချက်များအတွက်သာတရားဝင်သည်။

  3. ဘေးဒဏ်သင့် အမှားတစ်ခုဖြစ်ပေါ်သည့်အခါ -Rows -1 ဖြစ်နိုင်သည်
    အကယ်. SQL ကြေငြာချက်သည် execute လုပ်ရန်ပျက်ကွက်ပါက ဘေးရှိ --1 သည် -11 ။ ဤအချိန်တွင်သင်သည်အမှားမက်ဆေ့ခ်ျကို $ MySQLI-> အမှား မှတဆင့်ရယူရန်လိုအပ်သည်။

  4. အရောင်းအ 0 ယ်များကိုကိုင်တွယ်ရာတွင်ကိုက်ညီမှုကိုဂရုပြုပါ အကယ်. ထုတ်ပြန်ချက်တစ်ခုတွင်ထုတ်ပြန်ချက်များစွာကွပ်ကဲသည်ဆိုပါကကြေငြာချက်တစ်ခုတည်း၏ ဘေးဒဏ် သင့်သည့်ကြေငြာချက်တစ်ခု၏အလုံးစုံနောက်ဆုံးအခြေအနေကိုမအာမခံနိုင်ပါ။


5 ။ အကျဉ်းချုပ်

  • Multi_query သည် SQL များကိုလုပ်ဆောင်သောအခါရလဒ်အားလုံးကိုဖြတ်သန်းရန် Next_result () နှင့်ပူးပေါင်းရန် loop ကိုအသုံးပြုရမည်။

  • ကြေငြာချက်တစ်ခုစီပြီးသွားရင် ဘေးဖယ်ခံရတဲ့ အနေဖြင့်လက်ရှိကြေငြာချက်၏အကျိုးသက်ရောက်မှုအတန်းအရေအတွက်ဖြစ်သည်။

  • အမှားအယွင်းကိုရှာဖွေရန်အာရုံစိုက်ပါ

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

အထက်ပါအချက်များကိုကျွမ်းကျင်စွာပြုလုပ်နိုင်ခြင်းအားဖြင့် MySQLI ::-about_rows နှင့် multi_query တို့ကို မှန်ကန်စွာ အသုံးပြု. SQL ကွပ်မျက်မှုနှင့်ရလဒ်ပြုပြင်ခြင်းလုပ်ငန်းများအတွက်လုပ်ဆောင်ရန်။