လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> MySQLI :: errno :: အမှားအယွင်းများကိုခြေရာခံရန် $ errno နှင့်ငွေပေးငွေယူ logging များကိုမည်သို့ပေါင်းစပ်ရမည်နည်း။

MySQLI :: errno :: အမှားအယွင်းများကိုခြေရာခံရန် $ errno နှင့်ငွေပေးငွေယူ logging များကိုမည်သို့ပေါင်းစပ်ရမည်နည်း။

M66 2025-07-25

ဒေတာဘေ့စ်လုပ်ငန်းများကိုလုပ်ဆောင်သောအခါကျွန်ုပ်တို့သည်အချို့သောမေးမြန်းချက်များမှားယွင်းနေသောကြောင့်သို့မဟုတ်အချို့သောစစ်ဆင်ရေးများကြောင့်အချို့သောစစ်ဆင်ရေးများကိုအကောင်အထည်ဖော်နိုင်သည့်အတွက်ငွေပေးချေမှုမအောင်မြင်မှုများကိုမကြာခဏကြုံတွေ့ရလေ့ရှိသည်။ ဤအချိန်တွင်ပျက်ကွက်သောခြေလှမ်းများကိုခြေရာခံရန်နှင့်အသေးစိတ်အမှားအချက်အလက်များကိုအချိန်မီဖြင့်ရယူရန်အထူးအရေးကြီးသည်။ MySQLI extension သည် URRNO နှင့် $ error properties များကိုထောက်ပံ့ပေးသည်။ ငွေပေးချေမှုသစ်ထုတ်လုပ်ခြင်းနှင့်ပေါင်းစပ်ပြီးကျရှုံးမှု၏တိကျသောအဆင့်များကိုကျွန်ုပ်တို့ထပ်မံခြေရာခံနိုင်သည်။

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

1 ။ MySQLI :: $ errno ၏အခန်းကဏ်။

PHP တွင် MySQLI extension သည်နောက်ဆုံးဒေတာဘေ့စ်လည်ပတ်မှုတွင်ဖြစ်ပွားခဲ့သောအမှားကုဒ်ကိုကိုယ်စားပြုသော $ errno property ကိုထောက်ပံ့ပေးသည်။ ဒေတာဘေ့စ်စုံစမ်းမှုတစ်ခုသို့မဟုတ်အခြားစစ်ဆင်ရေးမအောင်မြင်သည့်အခါ $ errno ကို သက်ဆိုင်ရာအမှားကုဒ်ကိုသတ်မှတ်လိမ့်မည်။ အမှားတစ်ခုဖြစ်ပွားပြီးအသေးစိတ်အမှားအချက်အလက်များကိုထပ်မံရယူခြင်းရှိမရှိဆုံးဖြတ်ရန်ဤတန်ဖိုးကိုသင်စစ်ဆေးနိုင်သည်။

 if ($mysqli->errno) {
    echo "အမှားကုဒ်: " . $mysqli->errno . "<br>";
    echo "အမှားသတင်းစကား: " . $mysqli->error . "<br>";
}

အထက်ပါကုဒ်မှတဆင့်အမှားတစ်ခုဖြစ်ပေါ်ပါကကျွန်ုပ်တို့သည်တိကျသောအမှားကုဒ်နှင့်အမှားအယွင်းများကိုရယူနိုင်သည်။

2 ။ အရောင်းအ 0 ယ်ကိုဘယ်လိုသုံးရမလဲ

Multi-step database operations များကိုလုပ်ဆောင်သောအခါကျွန်ုပ်တို့သည်များသောအားဖြင့်စစ်ဆင်ရေး၏အနုမြူဗုံးကိုသေချာစေရန်အရောင်းအ 0 ယ်များကိုအသုံးပြုလေ့ရှိသည်။ ကျွန်ုပ်တို့သည်အရောင်းအ 0 ယ်များကိုလုပ်ဆောင်သောအခါအောင်မြင်မှုများအားလုံးကိုအောင်မြင်စွာကွပ်မျက်ခံရရမည်။ ငွေပေးငွေယူကိုအသုံးပြုသောအခါတစ်ဆင့်ပျက်ကွက်ပါက MySQLI :: $ errno မှတစ်ဆင့်ပျက်ကွက်ခြင်း၏အကြောင်းရင်းကိုကျွန်ုပ်တို့ဖမ်းယူနိုင်ပြီးပိုမိုလွယ်ကူသည့်နောက်ဆက်တွဲခြေရာခံခြင်းနှင့်ပြ es နာဖြေရှင်းခြင်းအတွက်မှတ်တမ်းကိုမှတ်တမ်းတင်နိုင်သည်။

 $mysqli->begin_transaction();

try {
    // အဆင့် 1
    $mysqli->query("UPDATE users SET balance = balance - 100 WHERE user_id = 1");
    
    if ($mysqli->errno) {
        throw new Exception("လှမ်း 1 ဆုံးရှုံး,အမှားကုဒ်:" . $mysqli->errno . " အမှားသတင်းစကား:" . $mysqli->error);
    }

    // အဆင့် 2
    $mysqli->query("UPDATE accounts SET balance = balance + 100 WHERE account_id = 2");
    
    if ($mysqli->errno) {
        throw new Exception("လှမ်း 2 ဆုံးရှုံး,အမှားကုဒ်:" . $mysqli->errno . " အမှားသတင်းစကား:" . $mysqli->error);
    }

    // တင်သွင်းမှုတင်သွင်း
    $mysqli->commit();
} catch (Exception $e) {
    // ငွေပေးငွေယူ Loverback
    $mysqli->rollback();
    // မှတ်တမ်းအမှားမှတ်တမ်း
    error_log("事务ဆုံးရှုံး: " . $e->getMessage());
}

အထက်ဖော်ပြပါကုဒ်များတွင်ကျွန်ုပ်တို့သည်ငွေပေး ငွေ ယူတစ်ခုစတင်ရန်နှင့်ခြေလှမ်းတစ်ခုစီပြီးနောက်အမှားတစ်ခုဖြစ်ပွားခြင်းရှိမရှိစစ်ဆေးပါ။ အဆင့်တစ်ဆင့်မအောင်မြင်ပါက Database စစ်ဆင်ရေးသည်တစ်စိတ်တစ်ပိုင်းအောင်မြင်ရန်နှင့်ရှေ့နောက်ညီညွတ်မှုကိုဆက်လက်ထိန်းသိမ်းထားနိုင်မည်မဟုတ်ကြောင်းသေချာစေရန်ချွင်းချက်ချပြီးငွေပေးချေမှုထပ်ခါတလဲလဲပြုလုပ်ပါ။ တစ်ချိန်တည်းမှာပင်အမှားအယွင်းများကိုပိုမိုလွယ်ကူသည့်နောက်ဆက်တွဲပြ troubl နာဖြေရှင်းခြင်းအတွက်မှတ်တမ်းတွင်မှတ်တမ်းတင်ထားသည်။

3 ။ ငွေပေးငွေယူ logging နှင့်အတူပေါင်းစပ်

မအောင်မြင်သောခြေရာခံမှုကိုပိုမိုကောင်းမွန်သောခြေရာခံခြင်းနှင့်လုပ်ငန်းလည်ပတ်မှုအဆင့်တစ်ခုစီ၏ရလဒ်များကိုမှတ်တမ်းတင်ရန် logging function ကိုပေါင်းစပ်နိုင်သည်။ မှတ်တမ်းဖိုင်သည် SQL ထုတ်ပြန်ချက်များ, အမှားအယွင်းများ, အမှားအယွင်းများ, အမှားအယွင်းများ, အမှားအယွင်းများ,

 function log_error($message) {
    $logfile = '/path/to/your/logfile.log';
    $timestamp = date('Y-m-d H:i:s');
    $log_message = "$timestamp - $message\n";
    file_put_contents($logfile, $log_message, FILE_APPEND);
}

$mysqli->begin_transaction();

try {
    // အဆင့် 1
    $mysqli->query("UPDATE users SET balance = balance - 100 WHERE user_id = 1");
    
    if ($mysqli->errno) {
        log_error("လှမ်း 1 ဆုံးရှုံး,အမှားကုဒ်:" . $mysqli->errno . " အမှားသတင်းစကား:" . $mysqli->error);
        throw new Exception("လှမ်း 1 ဆုံးရှုံး");
    }

    // အဆင့် 2
    $mysqli->query("UPDATE accounts SET balance = balance + 100 WHERE account_id = 2");
    
    if ($mysqli->errno) {
        log_error("လှမ်း 2 ဆုံးရှုံး,အမှားကုဒ်:" . $mysqli->errno . " အမှားသတင်းစကား:" . $mysqli->error);
        throw new Exception("လှမ်း 2 ဆုံးရှုံး");
    }

    // တင်သွင်းမှုတင်သွင်း
    $mysqli->commit();
} catch (Exception $e) {
    // ငွေပေးငွေယူ Loverback
    $mysqli->rollback();
    // မှတ်တမ်းအမှားမှတ်တမ်း
    log_error("事务ဆုံးရှုံး: " . $e->getMessage());
}

ဤနည်းအားဖြင့်ကျွန်ုပ်တို့သည် console သို့အမှားအချက်အလက်များကိုထုတ်ယူနိုင်ရုံသာမကခြေလှမ်းတစ်ခုစီ၏ပျက်ကွက်မှုအရင်းနှင့်ငွေပေးငွေယူတစ်ခုလုံးကိုနောက်ပိုင်းတွင်လွှဲပြောင်းခြင်းအတွက်ပျက်ကွက်ခြင်း၏အကြောင်းရင်းများကိုလည်းမှတ်တမ်းတင်နိုင်သည်။

4 ။ ဒိုမိန်းအမည်နှင့် URL ကိုအစားထိုးပါ

သင်၏ဒေတာဘေ့စ်လုပ်ငန်းများတွင်ပြင်ပအရင်းအမြစ်များမှခေါ်ဆိုမှုများပါ 0 င်သည့်အခါ apis သို့မဟုတ်အခြား 0 န်ဆောင်မှု 0 န်ဆောင်မှုများကို URL များမှတောင်းဆိုခြင်းကဲ့သို့သောပြင်ပအရင်းအမြစ်များကိုတောင်းဆိုသည့်အခါမှန်ကန်သော URL ကိုအသုံးပြုရန်အရေးကြီးသည်။ သင်၏လျှောက်လွှာတွင်သင်သတ်သတ်မှတ်မှတ်ဒိုမိန်းအမည်ကိုအစားထိုးရန်လိုအပ်ပါကရိုးရှင်းသော string ကိုအစားထိုးခြင်းမှတစ်ဆင့်ဤလိုအပ်ချက်ကိုရရှိနိုင်ပါသည်။

ဥပမာအားဖြင့်, သင်၏ကုဒ်သည်အောက်ပါ URL ရှိကြောင်းဆိုပါစို့။

 $url = "https://example.com/api/getdata";

Domain Name ကို M66.net ဖြင့်အစားထိုးလိုပါက strip_replace () function ကိုသုံးနိုင်သည်။

 $url = "https://example.com/api/getdata";
$url = str_replace("example.com", "m66.net", $url);
echo $url; // ထုတ်လုပ်ခြင်း: https://m66.net/api/getdata

ဤနည်းအားဖြင့် URL တွင် domain name သည်ကျန်ရှိနေသေးသောလုပ်ဆောင်မှုကိုမထိခိုက်စေဘဲလိုအပ်သည့်အခါ dynamically divamically အစားထိုးသည်။

အကျဉ်းချုပ်

MySQLI :: RURRNO နှင့်ငွေပေးငွေယူဝင်ရောက်ခြင်းကိုပေါင်းစပ်ခြင်း, ဒေတာဘေ့စ်စစ်ဆင်ရေး၏မအောင်မြင်သောခြေလှမ်းများကိုပိုမိုဂရုတစိုက်ခြေရာခံနိုင်သည်။ ခွဲစိတ်ကုသမှုပျက်ကွက်သောအခါအမှားအချက်အလက်များကိုလျင်မြန်စွာရယူပြီး Easy Post-debugging အတွက် log သို့ log to log ပြုလုပ်နိုင်သည်။ တစ်ချိန်တည်းမှာပင် URL domain names များကိုအစားထိုးသည့်လှည့်ကွက်ကိုအသုံးပြုခြင်းအားဖြင့်ပြင်ပအရင်းအမြစ်များကိုခေါ်သည့်အခါမှန်ကန်သောဒိုမိန်းအမည်ကိုသုံးနိုင်သည်။

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