ဒေတာဘေ့စ်လုပ်ငန်းများအတွက် PHP ၏ MySQLI Extension ကိုအသုံးပြုသောအခါ Multi_Query function သည် Multi_query function သည်ကျွန်ုပ်တို့အား SQL ထုတ်ပြန်ချက်များကိုတစ်ပြိုင်နက်တည်းလုပ်ဆောင်ရန်ခွင့်ပြုသည်။ သို့သော်ထုတ်ပြန်ချက်များစွာကိုအကောင်အထည်ဖော်ပြီးနောက်, ဘေးဒဏ်သင့်သည့်အတန်းများကိုမည်သို့မှန်ကန်စွာရယူနိုင်ပုံ ( ထိခိုက်မှားသော )
ဤဆောင်းပါးသည် MySQLI :: abily_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;
ဤနောက်ဆုံးသတင်းကြေငြာချက်ကိုအကောင်အထည်ဖော်ပြီးနောက် ဘေးဒဏ်သင့်သည့် အချက်များသည်ထိခိုက်နစ်နာမှုကိုသက်ရောက်စေသည်။
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 သည် ကြေငြာချက်တစ်ခုစီ၏ရလဒ်များကိုဖြတ်သန်းရန်လိုအပ်သည့်အတွက်၎င်းကိုတစ်ခုဖြင့်တစ်ခုရယူရန်လိုအပ်သည်။
နမူနာကုဒ်:
$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;
}
ဤနေရာတွင်ကျွန်ုပ်တို့အသုံးပြုသည် ။ ကွပ်မျက်မှုတစ်ခုစီတိုင်းတွင်ကြေငြာချက်တစ်ခုစီကိုထိခိုက်သောအတန်းအရေအတွက်ကိုတိကျစွာရရှိရန်လက်ရှိ ထိခိုက်နစ်နာမှုကို ဖတ်ရှုသည်။
Multi_query ကို Next_result () ရလဒ်များကိုဖြတ်သန်းရန်အတွက်ပူးပေါင်းဆောင်ရွက်ရန်အသုံးပြုရမည် အကယ်. သင်သည် Next_result () ဟုမခေါ်ပါကသင်၏ပထမအကြိမ်ကြေငြာချက်၏ ဘေးဒဏ်သင့်သည့်ကြေညာချက်များကို သာရနိုင်ပြီးနောက်ဆက်တွဲထုတ်ပြန်ချက်များကိုလျစ်လျူရှုလိမ့်မည်။
အချို့ထုတ်ပြန်ချက်များသည်အတန်းအရေအတွက်ကိုအကျိုးသက်ရောက်မည်မဟုတ်ပါ ဥပမာအားဖြင့်, Selected Statement -1 -1 ။ အချက်အလက်များကိုပြုပြင်မွမ်းမံသောထုတ်ပြန်ချက်များအတွက်သာတရားဝင်သည်။
ဘေးဒဏ်သင့် အမှားတစ်ခုဖြစ်ပေါ်သည့်အခါ -Rows -1 ဖြစ်နိုင်သည်
အကယ်. SQL ကြေငြာချက်သည် execute လုပ်ရန်ပျက်ကွက်ပါက ဘေးရှိ --1 သည် -11 ။ ဤအချိန်တွင်သင်သည်အမှားမက်ဆေ့ခ်ျကို $ MySQLI-> အမှား မှတဆင့်ရယူရန်လိုအပ်သည်။
အရောင်းအ 0 ယ်များကိုကိုင်တွယ်ရာတွင်ကိုက်ညီမှုကိုဂရုပြုပါ အကယ်. ထုတ်ပြန်ချက်တစ်ခုတွင်ထုတ်ပြန်ချက်များစွာကွပ်ကဲသည်ဆိုပါကကြေငြာချက်တစ်ခုတည်း၏ ဘေးဒဏ် သင့်သည့်ကြေငြာချက်တစ်ခု၏အလုံးစုံနောက်ဆုံးအခြေအနေကိုမအာမခံနိုင်ပါ။
Multi_query သည် SQL များကိုလုပ်ဆောင်သောအခါရလဒ်အားလုံးကိုဖြတ်သန်းရန် Next_result () နှင့်ပူးပေါင်းရန် loop ကိုအသုံးပြုရမည်။
ကြေငြာချက်တစ်ခုစီပြီးသွားရင် ဘေးဖယ်ခံရတဲ့ အနေဖြင့်လက်ရှိကြေငြာချက်၏အကျိုးသက်ရောက်မှုအတန်းအရေအတွက်ဖြစ်သည်။
အမှားအယွင်းကိုရှာဖွေရန်အာရုံစိုက်ပါ ။
ငွေပေးငွေယူတစ်ခုလည်ပတ်သောအခါထိခိုက်သောအတန်းအရေအတွက်မှာအရန်ဆုံးဖြတ်ချက်တစ်ခုသာဖြစ်သည်။
အထက်ပါအချက်များကိုကျွမ်းကျင်စွာပြုလုပ်နိုင်ခြင်းအားဖြင့် MySQLI ::-about_rows နှင့် multi_query တို့ကို မှန်ကန်စွာ အသုံးပြု. SQL ကွပ်မျက်မှုနှင့်ရလဒ်ပြုပြင်ခြင်းလုပ်ငန်းများအတွက်လုပ်ဆောင်ရန်။