PHP တွင် MySQLI extension သည် phinqli extension သည်အဓိကအားဖြင့် Orient-oriented oriented interfaces များကိုထောက်ပံ့ပေးသောအလွန်အသုံးများသော database access tool တစ်ခုဖြစ်သည်။ MySQLI_STMT အတန်းကို SQL ထုတ်ပြန်ချက်များကိုပြင်ဆင်ရန်နှင့် Execute လုပ်ရန်အသုံးပြုသည်။ MySQLI_STMM :: အမှားများ ကဲ့သို့သောအမှားများကိုကိုင်တွယ်ရန်အတွက်ဂုဏ်သတ္တိများရှိသည်။
သို့သော် Multi-statements of Multi-statements of MySQLI_STMT ၏အပြုအမူ :: $ အမှား သည်ကြေငြာချက်တစ်ခုတည်းနှင့်ကွဲပြားသည်။ ဤဆောင်းပါးတွင် MySQLI_STMT :: အမှားအယွင်းများကို Multi-statement execution နှင့်ဤကန့်သတ်ချက်များကိုမည်သို့ကိုင်တွယ်ရမည်ကိုကန့်သတ်ထားသည်။
MySQL တွင် Multi-statements များကို Multi-statements ဟုခေါ်သည်။ ၎င်းသည်စုံစမ်းမှုတောင်းဆိုမှုတစ်ခုတည်းတွင်ကွပ်မျက်ခံရသည်။ MySQLI extension ကိုအသုံးပြုသည့်အခါ MySQLI_Multi_Query () function မှတဆင့်သင် Multi-statement များကို execute လုပ်နိုင်သည်။ ဤလုပ်ဆောင်မှုသည်သင့်အား SQL Queries မျိုးစုံပေးပို့ခြင်းနှင့်တူညီသောဆက်သွယ်မှုတစ်ခုတွင်တစ်ခုအားဖြင့်၎င်းတို့အားတစ်ခုဖြင့်ပြုလုပ်ရန်ခွင့်ပြုသည်။
$query = "SELECT * FROM users; SELECT * FROM orders;";
if (mysqli_multi_query($connection, $query)) {
do {
// တစ်ခုချင်းစီကိုစုံစမ်းမှု၏ရလဒ်များကို process
if ($result = mysqli_store_result($connection)) {
while ($row = mysqli_fetch_assoc($result)) {
// output query ကိုရလဒ်များ
}
mysqli_free_result($result);
}
} while (mysqli_next_result($connection));
}
MySQLI_STMT :: $ error property ကိုအသုံးပြုသောအခါ၎င်းသည်ကြေညာချက်ကိုအကောင်အထည်ဖော်သည့်အခါအမှားအယွင်းများကိုပြန်ပို့သည်။ ဤအိမ်ခြံမြေသည်များသောအားဖြင့်ကြေငြာချက်တစ်ခုတည်းကွပ်မျက်ခံရသည့်အခါနောက်ဆုံးမေးမြန်းမှု၏အမှားကိုထင်ဟပ်သည်။ သို့သော် Multi-statement uncourmation တွင် MySQLI_STMT ၏အပြုအမူ :: $ အမှား သည်ကွဲပြားသည်။
In multi-statement execution, the mysqli_multi_query() function will process multiple queries at once, which means that the error information of the query is not directly reflected in mysqli_stmt::$error , but is handled by mysqli_multi_query() or mysqli_next_result() . ထို့ကြောင့် MySQLI_STMT :: $ အမှား မှတစ်ဆင့်၎င်းတို့၏ Query အားလုံး၏အမှားအချက်အလက်များကိုတိုက်ရိုက်ရယူရန်မဖြစ်နိုင်ပါ။
အဘယ်ကြောင့်ဆိုသော် Multi-statement query သည်တစ်ခုတည်းသောစုံစမ်းမှုစစ်ဆင်ရေးမဟုတ်ဘဲစုံစမ်းမှုများကိုပေါင်းစပ်။ ဖြစ်သည်။ ထုတ်ပြန်ချက်များစွာကွပ်မျက်ခံရသောအခါ MySQL သည်စုံစမ်းမှုတစ်ခုစီကိုတစ်ခုစီမှတစ်ခုချင်းစီကိုလုပ်ဆောင်သည်။ ဤကိစ္စတွင် MySQLI_STMT :: $ အမှား တစ်ခုချင်းစီအတွက်အမှားသတင်းစကားကိုတိကျစွာရောင်ပြန်ဟပ်။ မရပါ။
သတ်သတ်မှတ်မှတ်အကြောင်းပြချက်မှာအောက်ပါအတိုင်းဖြစ်သည် -
ကြေငြာချက်အမှားကိုင်တွယ်ခြင်း - ကြေငြာချက် Multi- ထုတ်ပြန်ချက်တစ်ခုစီတွင်အမှားများကို MySQLI_Multi_Query () နှင့်ဆက်စပ်သောလုပ်ဆောင်ချက်များ ( MySQLI_STIFT_RESULT_RESULT () ) နှင့် 4 င်းတို့၏ဆက်စပ်သောလုပ်ဆောင်ချက်များ (ဥပမာ MySQLI_StMT )
အမှားအယွင်းများကိုခွဲထုတ်ခြင်း - ကြေငြာချက်ပေါင်းစုံထုတ်ပြန်ချက်လုပ်ငန်းစဉ်အတွင်းကြေငြာချက်တစ်ခုစီ၏ကွပ်မျက်မှုရလဒ်ကိုသီးခြားခွဲထုတ်ထားပါသည်။ ဆိုလိုသည်မှာသင်သည် MySQLI_STMTM :: $ error property ကိုတစ်ခုတည်းဖြင့်ဖော်ပြထားသောအမှားများအားလုံးကိုသင်မဖမ်းနိုင်ခြင်းဖြစ်သည်။
ငွေပေးချေမှုကိုက်ညီမှု (ဥပမာ အရောင်းအ 0 ယ်ခြင်း နှင့် ကျူးလွန်ခြင်း ကဲ့သို့သောအရောင်းအ 0 ယ်များ) ကိုသင်အသုံးပြုပါကအရောင်းအ 0 ယ်အမြောက်အများကို အသုံးပြု. အမှားတစ်ခုတွင်အမှားတစ်ခုဖြစ်သောငွေပေးငွေယူသည်အလိုအလျောက်ပြန်လှိမ့်လိမ့်မည်။ သို့သော် MySQLI_Multi_Query () နှင့်အရောင်းအ 0 ယ်ယန္တရားများဖြင့်အမှားဖမ်းယူခြင်းများကို MySQLI_STMT မှစီမံနိုင်ဆဲဖြစ်သည်။
MySQLI_STMT :: $ အမှားသည် Multi-statement execution တွင်အမှားအချက်အလက်များကိုတိုက်ရိုက်မပေးနိုင်ပါ။ MySQLI_NEXT_RESult () နှင့် mySqli_error ကို ပေါင်းစပ်ရန် mySQLI_Multi_query () function ကိုသုံးရန်ဖြစ်သည်။
ဒီမှာဥပမာတစ်ခုပါ။
$query = "SELECT * FROM users; SELECT * FROM non_existing_table;";
if (mysqli_multi_query($connection, $query)) {
do {
// လက်ရှိစုံစမ်းမှု၏ရလဒ်များကိုစစ်ဆေးပါ
if ($result = mysqli_store_result($connection)) {
while ($row = mysqli_fetch_assoc($result)) {
// လုပ်ငန်းစဉ်မေးမြန်းချက်ရလဒ်များ
}
mysqli_free_result($result);
}
// လက်ရှိစုံစမ်းမှုတွင်အမှားအယွင်းများရှိမရှိစစ်ဆေးပါ
if (mysqli_error($connection)) {
echo "အမှားအမှား: " . mysqli_error($connection);
}
} while (mysqli_next_result($connection));
}
ဤဥပမာတွင်စုံစမ်းမှုတစ်ခုစီပြီးပါက, စုံစမ်းမှုတစ်ခုစီအတွက် MySQLI_ERROR ($ ဆက်သွယ်မှု) မှတစ်ဆင့်အမှားအချက်အလက်များကိုကျွန်ုပ်တို့ရရှိသည်။
အချုပ်အားဖြင့် MySQLI_STMTT :: Multi-statement padicy-identution တွင်အမှားအယွင်းများ သည် Multi-statement multi-statement multi-statement query သည်အမျိုးမျိုးသောလွတ်လပ်သောမေးမြန်းချက်မျိုးစုံပေါင်းစပ်ခြင်းဖြစ်ပြီး MySQLI_STMT :: အမှားအယွင်းများကိုသာထင်ဟပ်နိုင်သည်။ MySQLI_Multi_Query (), MySQLI_ENEXTY_RESELT () နှင့် MySQLI_ERRESULE () နှင့် MySQLI_ERRESURE () နှင့် MySQLI_ERRORERS () နှင့် MySQLI_ERRORRES () နှင့် MySQLI_ERRORRES () နှင့် MySQLI_ERRORERRES () နှင့် MySQLI_ERRORRES () နှင့် MySQLI_ERRORRES () နှင့် MySQLI_ERRORRESS () နှင့် MySQLI_ERRORERRES () နှင့် MySQLI_ERRORERRESS () နှင့် MySQLI_ERRORER () နှင့် MySQLI_ERRORRES () နှင့် MySQLI_ERRORER ()) ကိုသုံးရန်လိုအပ်သည်။
ကြေငြာချက်ဆိုင်ရာစုံစမ်းမှုများတွင်အမှားအယွင်းများကိုကျိုးကြောင်းဆီလျော်စွာကိုင်တွယ်ခြင်းအားဖြင့်သင်သည်စုံစမ်းမှုတစ်ခုစီ၏ကွပ်မျက်မှုအားပိုမိုတိကျစွာနားလည်နိုင်ပြီးအစီအစဉ်၏ကြံ့ခိုင်မှုကိုတိုးတက်စေခြင်းနှင့်ချမှတ်ခြင်းထိရောက်မှုကိုတိုးတက်စေနိုင်သည်။