လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> MySQLI_Warning :: Database Debugging တွင်နောက်ထပ်လုပ်ဆောင်ချက်ကဘာလဲ။

MySQLI_Warning :: Database Debugging တွင်နောက်ထပ်လုပ်ဆောင်ချက်ကဘာလဲ။

gitbox 2025-06-15

ဒေတာဘေ့စ်ပရိုဂရမ်းမင်း၏လုပ်ငန်းစဉ်တွင် Debugging သည်အရေးကြီးသောဖွံ့ဖြိုးတိုးတက်မှုအတွက်အရေးကြီးသည့်နေရာတစ်ခုဖြစ်ပြီး PHP တွင် အောက်ပါ function သည် MySQL ဒေတာဘေ့စ်သတိပေးချက်များကိုကိုင်တွယ်ရန်အသုံးပြုသောကိရိယာတစ်ခုဖြစ်သည်။ ပုံမှန်ဒေတာဘေ့စ်စုံစမ်းမှုများလုပ်ဆောင်မှုများအနေဖြင့်မကြာခဏအသုံးပြုသော်လည်းအချို့သောကိစ္စရပ်များတွင် developer များအနေဖြင့် Developer များသည် Developers များကိုပိုမိုနားလည်သဘောပေါက်ရန်အထူးသဖြင့်ရှုပ်ထွေးသောမေးမြန်းချက်များနှင့်အရောင်းအ 0 ယ်များပြုလုပ်သောအခါအသေးစိတ်အချက်အလက်များကိုပိုမိုနားလည်ရန်ကူညီနိုင်သည်။ ဤဆောင်းပါးသည် MySQLI_warning :: နောက် function ၏တိကျသောအခန်းကဏ် and ကိုမိတ်ဆက်ပေးလိမ့်မည်။

1 ။ MySQLI_warning :: နောက် function ကိုမိတ်ဆက်

MySQLI_Warning :: နောက် function သည် PHP တွင် MySQLI_Warning class ၏အစိတ်အပိုင်းဖြစ်သည်။ MySQLI_Warning အတန်းအစားကိုယ်နှိုက်သည်အဓိကအားဖြင့် MySQL server မှထုတ်လုပ်သောသတိပေးအချက်အလက်များကိုသိမ်းဆည်းရန်အဓိကအသုံးပြုသည်။ စုံစမ်းမှုတစ်ခုပြုလုပ်သောအခါ MySQL သည်ရှာဖွေခြင်းကိုတိုက်ရိုက်မအောင်မြင်နိုင်သည့်သတိပေးသတင်းစကားအချို့ကိုပြန်ပို့နိုင်သော်လည်းဒေတာဘေ့စ်၏ကွပ်မျက်မှုရလဒ်များကိုအကျိုးသက်ရောက်နိုင်သည်။ MySQLI_WARNING :: နောက်တစ်ခုက ဒီသတိပေးစာတွေကိုရယူဖို့အသုံးပြုတဲ့ function တစ်ခုပါ။

အခြေခံ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -

 mysqli_warning::next();

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

2 ။ debugging အတွက်အရေးကြီးသောအခန်းကဏ်။

2.1 ဒေတာဘေ့စ်သတိပေးချက်များကိုရိုက်ကူးခြင်းနှင့်ပြသခြင်း

MySQL သည်ဒေတာများကိုအဆင့်မြှင့်တင်ခြင်းသို့မဟုတ်ဖြည့်စွက်သည့်အခါဒေတာဘေ့စ်လုပ်ငန်းများတွင်သတိပေးချက်များအချို့ကိုပြန်လည်ပေးပို့နိုင်သည်။ ဥပမာအားဖြင့်, မိတ္တူကူးယူသည့်မှတ်တမ်းကိုဖြည့်စွက်ခြင်းသို့မဟုတ်မမှန်ကန်သောအညွှန်းကိန်းများကိုပြုလုပ်သောအခါ MySQL သည်များသောအားဖြင့်သတိပေးချက်တစ်ခုပြလေ့ရှိသည်။ MySQLI_Warning :: နောက် function ကို အသုံးပြု. developer များက debug ကိုကူညီရန်ဤသတိပေးချက်များကိုဖမ်းယူနိုင်ပြီးပြသခြင်း။

ဥပမာအားဖြင့်:

 <?php
// ဒေတာဗေ့စ် connection ကိုအောင်မြင်သည်ဟုယူဆပါ
$result = $mysqli->query("INSERT INTO users (id, name) VALUES (1, 'Alice')");

if ($mysqli->warning_count) {
    $warning = $mysqli->get_warnings();
    do {
        echo "Warning Code: " . $warning->errno . "<br>";
        echo "Warning Message: " . $warning->message . "<br>";
    } while ($warning = $warning->next());
}
?>

အထက်ဖော်ပြပါကုဒ်သည်သတိပေးစာများကိုမည်သို့ဖမ်းယူနိုင်ကြောင်းနှင့်ပြသရန်ကိုပြသသည်။ Insert စစ်ဆင်ရေးဖျော်ဖြေပြီးနောက်ဒေတာဘေ့စ်သည်သတိပေးချက်များကိုပြန်လည်ရောက်ရှိပါကဤသတိပေးချက်များကို နောက်တစ်ခုမှတဆင့် () နည်းပါးခြင်းနှင့်ရလဒ်များကိုရနိုင်သည်။

2.2 အလားအလာရှိသောဒေတာဘေ့စ်ပြ problems နာများကိုဖြေရှင်းခြင်း

ဒေတာဘေ့စ်လုပ်ငန်းများအတွက်သတိပေးချက်များသည်အမှားအယွင်းများအဖြစ်ချက်ချင်းမပေါ်ပါ, သို့သော်၎င်းတို့သည်အလားအလာရှိသောပြ problems နာများကိုအကြံပြုနိုင်သည်။ ဥပမာအားဖြင့်အချို့သောစစ်ဆင်ရေးများသည်မျှော်လင့်ထားသည့်အတိုင်းအလုပ်မလုပ်နိုင်သော်လည်းအချို့သောအချက်အလက်ပုံစံများသည်ကိုက်ညီမှုမရှိပါ။ MySQLI_Warning :: နောက်တွင် developer များသည်မည်သည့်သတိပေးချက်များကိုဖြစ်ပျက်နေကြောင်းနှင့်သင့်လျော်သောညှိနှိုင်းမှုများကိုပိုမိုရှင်းလင်းစွာနားလည်နိုင်သည်။

ဥပမာအားဖြင့်, အကယ်. စုံစမ်းမှုတစ်ခုသတိပေးချက်ကိုပြန်ပို့ပါက၎င်းသည်ဒေတာဘေ့စ်တွင်မလိုအပ်သောအချက်အလက်များသို့မဟုတ်အချက်အလက်မကိုက်ညီပါကအချို့သောအချက်အလက်များသို့မဟုတ်ဒေတာရှေ့နောက်မညီမှုရှိနိုင်သည်။ developer များကဤသတိပေးချက်များအပေါ် အခြေခံ. ဒေတာဘေ့စ်ဒီဇိုင်းများကိုပြုပြင်နိုင်သည်သို့မဟုတ်မေးမြန်းချက်များကိုအကောင်းဆုံးဖြစ်စေနိုင်သည်။

2.3 ဒေတာဘေ့စ်လုပ်ငန်းများ၏ပွင့်လင်းမြင်သာမှုကိုတိုးတက်အောင်လုပ်ပါ

MySQLI_warning :: နောက်တစ်ခုကို debugging လုပ်နေစဉ်အတွင်း developer များသည်ဒေတာဘေ့စ်လုပ်ငန်းများနှင့် ပတ်သက်. ပိုမိုမြင့်မားသောပွင့်လင်းမြင်သာမှုရှိနိုင်သည်။ ဒေတာဘေ့စ်၏ကွပ်မျက်ခြင်းလုပ်ငန်းစဉ်သည်အထူးသဖြင့်သတိပေးသတင်းအချက်အလက်ကိုလျစ်လျူရှုနိုင်သည့်အသေးစိတ်အချက်အလက်များတွင်အကြိမ်ပေါင်းများစွာသည်သွယ်ဝိုက်သောလုပ်ငန်းစဉ်ဖြစ်သည်။ သတိပေးချက်များကိုတက်ကြွစွာစစ်ဆေးခြင်းအားဖြင့် developer များသည်ရှာဖွေမှုတစ်ခုစီ၏ကွပ်မျက်မှုရလဒ်များကိုရှင်းလင်းစွာနားလည်နိုင်ပြီးသတိပေးချက်များကိုလျစ်လျူရှုခြင်းကြောင့်ဖြစ်နိုင်ချေရှိသောအမှားများကိုရှောင်ရှားနိုင်သည်။

3 ။ MySQLI_Warning :: နောက်တစ်ခု နှင့်အခြား debugging tools များအကြားနှိုင်းယှဉ်

MySQLI_ERRORRING () အမှားများကိုဖမ်းရန် MySQLI_ERGRING:: နောက်တွင် အမှားများမဟုတ်ဘဲသတိပေးချက်များကိုဖမ်းရန်နှင့်ကိုင်တွယ်ခြင်းအပေါ်ပိုမိုကောင်းမွန်သောရိုးရှင်းသော debugging method များနှင့်မတူသည်။ MySQL ရှိသတိပေးချက်များသည်များသောအားဖြင့်အချက်အလက်အပြောင်းအလဲအတွက်အသေးစိတ်အချက်အလက်များနှင့် ပတ်သက်. ရှာဖွေမှုမအောင်မြင်သောအမှားများမဟုတ်ပါ။ ထို့ကြောင့် MySQLI_Warning ၏အသုံးပြုမှုများ :: နောက်တစ်ခု သည်ဒေတာသမာဓိရှိမှု,

PHP ၏ MySQLI_ERRORRORRORR () function နှင့်မတူဘဲအဆုံးစွန်သောအမှားများကိုသတိပေးခြင်းမရှိဘဲ Fatal Error Messages ကိုသာပြန်ပို့ပေးလိမ့်မည်။ ၎င်းသည် MySQLI_warning :: Hext အထူးသဖြင့်သတိပေးချက်များကိုကိုင်တွယ်သောအခါအထူးသဖြင့်အထူးသဖြင့်အောင်မြင်စွာကွပ်မျက်ခံရသောအခါအလားအလာရှိသောပြ problems နာများရှိသေးသည်။

4 ။ လက်တွေ့ကျသောလျှောက်လွှာဥပမာ

အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်အထူးသဖြင့်ဒေတာရွှေ့ပြောင်းခြင်းသို့မဟုတ်ဒေတာ သုတ်ခြင်း, ဥပမာအားဖြင့်, သင်သည်စနစ်ဟောင်းမှဒေတာများကိုစနစ်အသစ်တစ်ခုထဲသို့တင်သွင်းနေပြီဆိုပါစို့, ဒေတာ format သည်ကွဲပြားနိုင်သည်။ MySQLI_warning :: နောက်တစ်ခုကို အသုံးပြု. ဤသတိပေးချက်များကိုရွှေ့ပြောင်းခြင်းလုပ်ငန်းစဉ်တစ်လျှောက်လုံးတွင်စဉ်ဆက်မပြတ်စောင့်ကြည့်လေ့လာပြီးမှတ်တမ်းတင်နိုင်သည်။

MySQLI_Warning :: Data Mounter စဉ်အတွင်းသတိပေးချက်များကိုရိုက်ကူးရန်မည်သို့အသုံးပြုရမည်ကိုဖော်ပြသည့်ရိုးရှင်းသောဥပမာတစ်ခုမှာဤတွင်ဖော်ပြထားသည်။

 <?php
// အဟောင်းကိုစနစ်ဒေတာဘေ့စနှင့်ဆက်သွယ်ပါ
$old_db = new mysqli("localhost", "user", "password", "old_database");

// စနစ်အသစ်ဒေတာဘေ့စနှင့်ဆက်သွယ်ပါ
$new_db = new mysqli("localhost", "user", "password", "new_database");

// ဒေတာအဟောင်းဒေတာဘေ့စမှဒေတာကိုထုတ်ယူခဲ့ပါတယ်ယူဆ
$data = $old_db->query("SELECT * FROM users");

// ဒေတာအသစ်တစ်ခုသို့ဒေတာထည့်သွင်းပါ
while ($row = $data->fetch_assoc()) {
    $new_db->query("INSERT INTO users (id, name) VALUES ('" . $row['id'] . "', '" . $row['name'] . "')");

    // သတိပေးစစ်ဆေးပါ
    if ($new_db->warning_count > 0) {
        $warning = $new_db->get_warnings();
        do {
            echo "Warning Code: " . $warning->errno . "<br>";
            echo "Warning Message: " . $warning->message . "<br>";
        } while ($warning = $warning->next());
    }
}
?>