PHP တွင်အချက်အလက်များရရန် MySQL ဒေတာဘေ့စ်ရှာဖွေမှုများကိုမကြာခဏအသုံးပြုလေ့ရှိသည်။ အထူးသဖြင့်ကျွန်ုပ်တို့သည်မေးမြန်းချက်မျိုးစုံအကောင်အထည်ဖော်သည့်အခါ, နောက် function သည်အလွန်အသုံးဝင်သောကိရိယာတစ်ခုဖြစ်သည်။ ရလဒ်အနေဖြင့်လာမည့်စုံစမ်းမှု၏ရလဒ်မှခုန်ရန်အသုံးပြုသည်။ သို့သော်လည်း, ဤလုပ်ဆောင်ချက်တွင်ဤလုပ်ဆောင်မှုတွင်များစွာသောပြောင်ပြောင်တင်းတင်းများမှာများစွာသော developer များမကြာခဏပေါ်ပေါက်လာလေ့ရှိသည်။ ယနေ့တွင်ကျွန်ုပ်တို့သည် PHP တွင်အမှားအယွင်းအများဆုံးသောနေရာ 5 ခုကိုဝေမျှလိမ့်မည် ။
Next_result () ပြ problem နာ () ကွပ်မျက်ခံရသည့်ပြ problem နာတစ်ခု () စုံစမ်းမှုများကိုအကောင်အထည်ဖော်သည့်အခါနောက်မေးခွန်းတစ်ခုသို့ခုန်ချရန်၎င်းကိုအသုံးပြုရန်မေ့နေသည်။ အကယ်. သင်သည် Next_Resulult () ဟုမခေါ်ပါကရလဒ်အနေဖြင့်နောက်ဆက်တွဲမေးမြန်းချက်များ၏ရလဒ်များကိုသင်ဆက်လက်ထုတ်ယူ။ မရပါ။ ပုံမှန်မဟုတ်သောပရိုဂရမ်အပြုအမူကိုဖြစ်ပေါ်စေသည်။
အမှားဥပမာ -
// စုံစမ်းမေးမြန်းခြင်းမရှိသေးပါ next_result()
$mysqli->multi_query("SELECT * FROM users; SELECT * FROM orders;");
$result = $mysqli->store_result(); // ပထမ ဦး ဆုံးစုံစမ်းမှု၏ရလဒ်ကိုသာပြန်လာလိမ့်မည်
မှန်ကန်သောဥပမာ -
$mysqli->multi_query("SELECT * FROM users; SELECT * FROM orders;");
do {
$result = $mysqli->store_result(); // ပထမ ဦး ဆုံးမေးမြန်းချက်ရလဒ်ဖြစ်စဉ်
// အပြောင်းအလဲများရလဒ်များ...
$mysqli->next_result(); // လာမယ့်စုံစမ်းမှုမှခုန်
} while ($mysqli->more_results());
မေးမြန်းမှုမျိုးစုံရေးဆွဲသည့်အခါကျွန်ုပ်တို့သည်ပိုမိုသောမေးခွန်းများကျန်ရှိနေသေးသောရှာဖွေမှုရလဒ်များရှိနေသေးသည်ကိုစစ်ဆေးရန် ပိုမိုများပြားလာ ရန်လိုအပ်သည်။ အကယ်. သင်သည်ပိုမိုစုံစမ်းမှုရလဒ်များရရှိရန်မစစ်ဆေးပါက Next_result () ဟုခေါ်သည့်အခါအမှားတစ်ခုဖြစ်ပေါ်စေနိုင်သည်။
အမှားဥပမာ -
$mysqli->multi_query("SELECT * FROM users; SELECT * FROM orders;");
$mysqli->next_result(); // ရလဒ်များပိုမိုများပြားလာခြင်းမရှိပါ,အမှားအယွင်းများဖြစ်ပေါ်စေနိုင်သည်
မှန်ကန်သောဥပမာ -
$mysqli->multi_query("SELECT * FROM users; SELECT * FROM orders;");
do {
$result = $mysqli->store_result(); // ပထမ ဦး ဆုံးမေးမြန်းချက်ရလဒ်ဖြစ်စဉ်
$mysqli->next_result(); // လာမယ့်စုံစမ်းမှုမှခုန်
} while ($mysqli->more_results()); // သင်စစ်ဆေးမှုများတွင်ရလဒ်များပိုများကြောင်းသေချာပါစေ
Next_result () ကို ကွပ်မျက်ပြီးနောက် (), ယခင်ရလဒ်အစုကိုသန့်ရှင်းရေးလုပ်ထားကြောင်းသေချာအောင်လုပ်ရမည်။ ယခင်ရလဒ်ကိုသန့်ရှင်းရေးလုပ်ရန်ပျက်ကွက်ခြင်းကနောက်ဆက်တွဲမေးမြန်းချက်များကိုပျက်ကွက်ခြင်းသို့မဟုတ်မှတ်ဥာဏ်ယိုစိမ့်မှုများဖြစ်ပေါ်စေနိုင်သည်။
အမှားဥပမာ -
$mysqli->multi_query("SELECT * FROM users; SELECT * FROM orders;");
do {
$result = $mysqli->store_result(); // ပထမ ဦး ဆုံးမေးမြန်းချက်ရလဒ်ဖြစ်စဉ်
// ယခင်စုံစမ်းမှု၏ရလဒ်အစုကိုသန့်ရှင်းရေးလုပ်ဖို့မေ့လျော့
$mysqli->next_result(); // လာမယ့်စုံစမ်းမှုမှခုန်
} while ($mysqli->more_results());
မှန်ကန်သောဥပမာ -
$mysqli->multi_query("SELECT * FROM users; SELECT * FROM orders;");
do {
$result = $mysqli->store_result(); // ပထမ ဦး ဆုံးမေးမြန်းချက်ရလဒ်ဖြစ်စဉ်
// လက်ရှိစုံစမ်းမှုရလဒ်များကိုရှင်းလင်းပါ
$result->free();
$mysqli->next_result(); // လာမယ့်စုံစမ်းမှုမှခုန်
} while ($mysqli->more_results());
အကယ်. သင်၏ရှာဖွေမှုအမှားများကို နောက်တစ်ကြိမ်ခေါ်ဆိုခြင်း () ကိုခေါ်ဆိုခြင်းသည်အစီအစဉ်ကိုပျက်ကျရန်သို့မဟုတ်မမှန်ကန်ကြောင်းရလဒ်များကိုပြန်ပို့ရန်ဖြစ်ပေါ်စေနိုင်သည်။ ထို့ကြောင့်စုံစမ်းမှုတစ်ခုစီပြီးနောက်အမှားအယွင်းများရှိမရှိစစ်ဆေးသင့်သည်။
အမှားဥပမာ -
$mysqli->multi_query("SELECT * FROM users; SELECT * FROM orders WHERE id = 'invalid';");
do {
$result = $mysqli->store_result();
$mysqli->next_result();
} while ($mysqli->more_results());
မှန်ကန်သောဥပမာ -
$mysqli->multi_query("SELECT * FROM users; SELECT * FROM orders WHERE id = 'invalid';");
do {
if ($mysqli->errno) {
echo "Error: " . $mysqli->error;
break;
}
$result = $mysqli->store_result();
$mysqli->next_result();
} while ($mysqli->more_results());
Multi_query () နှင့် နောက်ဆက်တွဲ () _Resulult () querties ကိုကိုင်တွယ်ရန်မည်သည့်အချိန်တွင်ရှာဖွေခြင်းကိုမဆိုကိုင်တွယ်သောအခါဒေတာဘေ့စ်ဆက်သွယ်မှုကိုမပိတ်ပါနှင့်,
အမှားဥပမာ -
$mysqli->multi_query("SELECT * FROM users; SELECT * FROM orders;");
do {
$result = $mysqli->store_result();
$mysqli->next_result();
} while ($mysqli->more_results());
// ဒေတာဘေ့စ် connection ကိုပိတ်ရန်မေ့နေသည်
မှန်ကန်သောဥပမာ -
$mysqli->multi_query("SELECT * FROM users; SELECT * FROM orders;");
do {
$result = $mysqli->store_result();
$mysqli->next_result();
} while ($mysqli->more_results());
$mysqli->close(); // ဒေတာဘေ့စ် connection ကိုပိတ်ပါ,အရင်းအမြစ်များကိုအခမဲ့
Next_Result () သည်မေးမြန်းချက်မျိုးစုံကိုကိုင်တွယ်သည့်အခါအလွန်အစွမ်းထက်သောကိရိယာတစ်ခုဖြစ်သည်။ ဤ 0 တ်ထုများကိုနားလည်ခြင်းနှင့်သင့်လျော်သောကြိုတင်ကာကွယ်မှုများပြုလုပ်ခြင်းဖြင့်ဤပြ problems နာများတွင်ဖမ်းမိခြင်းကိုရှောင်ရှားနိုင်ပြီးသင်၏ပရိုဂရမ်းမင်းထိရောက်မှုကိုတိုးတက်စေသည်။ သတိရပါ, စုံစမ်းမှုစစ်ဆင်ရေးမျိုးစုံအတွင်းမှာရှင်းရှင်းလင်းလင်းကြည်လင်သောယုတ္တိရှိသောစီးဆင်းမှုကိုအမြဲတမ်းထိန်းသိမ်းထားပါ, စုံစမ်းမှုရလဒ်တစ်ခုစီကိုစစ်ဆေးပါ, ဆက်သွယ်မှုကိုမှန်ကန်စွာပိတ်ထားပါ။