လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> ဒေတာဘေ့စ်ကိုစောင့်ကြည့်လေ့လာရေးနှိုးစက်စနစ်၏တစ်စိတ်တစ်ပိုင်းအဖြစ် $ errno ကိုသုံးပါ

ဒေတာဘေ့စ်ကိုစောင့်ကြည့်လေ့လာရေးနှိုးစက်စနစ်၏တစ်စိတ်တစ်ပိုင်းအဖြစ် $ errno ကိုသုံးပါ

M66 2025-05-28

ဒေတာဘေ့စ်အပြန်အလှန်ဆက်သွယ်မှုများပါ 0 င်သည့် PHP applications များကိုတီထွင်သောအခါဒေတာဘေ့စ်စစ်ဆင်ရေးအမှားများကိုဖမ်းယူခြင်းနှင့်ကိုင်တွယ်ခြင်းသည်အလွန်အရေးကြီးသည်။ အမှားတစ်ခုဖြစ်သည့်အခါစနစ်သည်အချက်များချက်ချင်းတုန့်ပြန်နိုင်ရန်နှင့်နှိုးစက်များကိုဖြေရှင်းနိုင်ရန်အတွက် MySQLI :: erressi :: errno function ကိုသုံးနိုင်သည်။ ဤဆောင်းပါးသည်ဤအင်္ဂါရပ်ကိုဒေတာဘေ့စ်ကိုစောင့်ကြည့်လေ့လာရေးနှိုးစက်စနစ်တွင်မည်သို့ပေါင်းစပ်ရမည်ကိုအသေးစိတ်ရှင်းပြပါမည်။

1 ။ MySQLI :: $ errno function ကိုမိတ်ဆက်

MySQLI :: $ errno သည် MySQLI အတန်းအစား၏ပိုင်ဆိုင်မှုတစ်ခုဖြစ်သည်။ လတ်တလော MySQL စစ်ဆင်ရေး၏အမှားကုဒ်ကိုဖော်ပြသည်။ ဒေတာဘေ့စ်စစ်ဆင်ရေးတစ်ခုပြုလုပ်သောအခါအမှားတစ်ခုဖြစ်ပါကပစ္စည်းဥစ်စာပိုင်ဆိုင်မှုတွင်သီးခြားအမှားနံပါတ်ပါရှိသည်။ ဤအမှားနံပါတ်ကို အခြေခံ. နောက်ထပ်အမှားကိုင်တွယ်ခြင်းသို့မဟုတ်နှိုးစက်လုပ်ဆောင်နိုင်သည်။

 $mysqli = new mysqli("localhost", "user", "password", "database");

if ($mysqli->connect_error) {
    echo "ဆက်သွယ်မှုအမှား (" . $mysqli->connect_errno . "): " . $mysqli->connect_error;
}

MySQLI ကို ဆက်သွယ်စဉ်အမှားတစ်ခုဖြစ်သောအမှားတစ်ခုဖြစ်ပါက $ MySQLI-> Connect_errno သည် အမှားကုဒ်တစ်ခုကိုပြန်ပို့လိမ့်မည်။

2 ။ Database ကိုစောင့်ကြည့်လေ့လာရေးနှိုးစက်စနစ်ကိုပြင်ဆင်ပါ

ဒေတာဘေ့စ်စစ်ဆင်ရေးများအတွင်း MOSSQLIE :: MySQLI :: errno ကိုဤလိုအပ်ချက်ရရှိရန်အတွက် MOSSQLI :: errno ကို ပေါင်းစပ်နိုင်သည်။ အထူးသဖြင့်အောက်ပါအဆင့်များကိုအသုံးပြုနိုင်သည်။

2.1 ဒေတာဘေ့စ်လုပ်ငန်းများကိုနားထောင်ခြင်းအမှား

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

 $query = "SELECT * FROM users";
$result = $mysqli->query($query);

if ($mysqli->errno) {
    // အမှားတစ်ခုဖြစ်ပေါ်သည့်အခါ,အမှားသတင်းအချက်အလက်မှတ်တမ်း
    error_log("MySQL အမှားကုဒ်: " . $mysqli->errno . " အမှားသတင်းစကား: " . $mysqli->error);
    
    // တုန်လှုပ်ချောက်ချား
    sendAlert($mysqli->errno, $mysqli->error);
}

2.2 Alarm အကြောင်းကြားစာပေးပို့ပါ

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

 function sendAlert($errno, $error_message) {
    $to = "admin@m66.net"; // အုပ်ချုပ်ရေးမှူးအီးမေးလ်
    $subject = "ဒေတာဘေ့စအမှားနှိုးစက်";
    $message = "ဒေတာဘေ့စအမှားတစ်ခုဖြစ်ပွားခဲ့သည်,အမှားကုဒ်: $errno,အမှားသတင်းစကား: $error_message";
    
    // အီးမေးလ်ပို့ပါ
    mail($to, $subject, $message);
}

2.3 နှိုးစက်တံခါးခုံကိုသတ်မှတ်ပါ

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

 // မှတ်တမ်းတင်ထားသောအမှားများအရေအတွက်
$alertThreshold = 5;
$errorCount = 0;

// 假设အမှားတစ်ခုဖြစ်ပေါ်သည့်အခါ会执行下面的代码
if ($mysqli->errno) {
    $errorCount++;
    
    // အမှားအယွင်းများ၏နံပါတ်တံခါးခုံကိုကျော်လွန်ပါ,နှိုးစက်ပို့ပါ
    if ($errorCount >= $alertThreshold) {
        sendAlert($mysqli->errno, $mysqli->error);
        $errorCount = 0;  // အမှားရေတွက်ပြန်လည်စတင်ပါ
    }
}

2.4 အမှားအယွင်းအမျိုးမျိုးကိုကိုင်တွယ်ခြင်း

ကွဲပြားခြားနားသောဒေတာဘေ့စအမှားအယွင်းများကွဲပြားခြားနားသောကိုင်တွယ်နည်းလမ်းများလိုအပ်နိုင်ပါသည်။ ဥပမာ connection အမှားများနှင့်စုံစမ်းမှုအမှားများတွင်မတူညီသောနှိုးစက်ပေါ်လစီများရှိနိုင်သည်။ အမှားအယွင်းများကိုအမှားအယွင်းများပေါ်တွင် အခြေခံ. အမှားအယွင်းများကို ခွဲခြား. ကွဲပြားခြားနားသောအစီအမံများကိုခွဲခြားနိုင်သည်။

 if ($mysqli->errno) {
    switch ($mysqli->errno) {
        case 1045: // ခွင့်ပြုချက်အမှား
            sendAlert($mysqli->errno, "ခွင့်ပြုချက်အမှား: " . $mysqli->error);
            break;
        case 2002: // ဆက်သွယ်မှုအမှား
            sendAlert($mysqli->errno, "ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $mysqli->error);
            break;
        default:
            sendAlert($mysqli->errno, "အမည်မသိအမှား: " . $mysqli->error);
    }
}

3 ။ ပြီးပြည့်စုံသောကုဒ်ဥပမာ

MySQLI :: $ errno ကို သုံး. ဒေတာဘေ့စ်စောင့်ကြည့်လေ့လာမှုနှိုးစက်များကိုမည်သို့အကောင်အထည်ဖော်ရမည်ကိုပြသသည့်ကုဒ်ရိုးရှင်းသောမူကွဲတစ်ခု၏ရိုးရှင်းသောကျင့်သုံးသောမူကွဲတစ်ခုဖြစ်သည်။