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

$ errno အရအလိုအလျောက်ဒေတာဘေ့စ်ပြန်လည်ချိတ်ဆက်မှုယန္တရား

M66 2025-06-11

PHP applications များကိုတီထွင်သောအခါဒေတာဘေ့စ်ဆက်သွယ်မှုတည်ငြိမ်မှုသည်အလွန်အရေးကြီးသောအစိတ်အပိုင်းဖြစ်သည်။ အထူးသဖြင့်တစ်ပြိုင်နက်တည်းသို့မဟုတ်မြင့်မားသောကွန်ယက်အတက်အကျနှင့်အတူပတ်ဝန်းကျင်တွင်ဒေတာဘေ့စ်ဆက်သွယ်မှုများအနှောင့်အယှက်ဖြစ်စေနိုင်သည်သို့မဟုတ် invalidated ဖြစ်နိုင်သည်။ ဤပြ problem နာကိုဖြေရှင်းရန် $ errno အမှားကုဒ်အပေါ် အခြေခံ. ဒေတာဘေ့စ်ပြန်လည်ချိတ်ဆက်မှုယန္တရားကိုအလိုအလျောက်အကောင်အထည်ဖော်နိုင်သည်။ PHP တွင် $ errno error code မှတဆင့်ဒေတာဘေ့စ်များကိုအလိုအလျောက်ပြန်လည်ချိတ်ဆက်နည်းကိုဤဆောင်းပါးကမိတ်ဆက်ပေးလိမ့်မည်။

1 ။ $ errno အမှားကုဒ်ကိုနားလည်ပါ

PHP တွင် Database Operations ကိုလုပ်ဆောင်သောအခါ connection error error errics တစ်ခုဖြစ်လာပါက Database သည်အမှားကုဒ် $ errno ကို ပြန်ပို့လိမ့်မည်။ ဒေတာဘေ့စ်ပြန်လည်ချိတ်ဆက်မှုကိုအမှားကုဒ်အပေါ် အခြေခံ. လိုအပ်သည်ကိုကျွန်ုပ်တို့ဆုံးဖြတ်နိုင်သည်။ များသောအားဖြင့်သာမန်အမှားကုဒ်များမှာအောက်ပါအတိုင်းဖြစ်သည် -

  • 2002 : MySQL server ကို ဆက်သွယ်. မရပါ။

  • 2006 : MySQL server ကိုအဆက်ပြတ်နေသည်။

  • 2013 - MySQL query timeout ။

အကယ်. ကျွန်ုပ်တို့သည်ဤအမှားကုဒ်များကိုဖမ်းမိပါကအမှားသည်ဒေတာဘေ့စ်ဆက်သွယ်မှုပြ problem နာကြောင့်ဖြစ်ပေါ်လာသည်ကိုကျွန်ုပ်တို့ဆုံးဖြတ်နိုင်သည်။

2 ။ ဒေတာဘေ့စ် connection function ကိုဖန်တီးပါ

ပထမ ဦး စွာဒေတာဘေ့စ်ဆက်သွယ်မှုကိုတည်ဆောက်ရန် function တစ်ခုလိုအပ်သည်။ ဆက်သွယ်မှုမအောင်မြင်ပါကအမှားကုဒ်အပေါ် အခြေခံ. connection ကိုပြန်လည်ရယူရန်လိုအပ်, မလိုအပ်ကြောင်းဆုံးဖြတ်ရန်လိုအပ်သည်။

 <?php
function connectToDatabase() {
    $host = 'localhost';   // ဒေတာဘေ့စ်ဆာဗာ
    $dbname = 'test_db';   // ဒေတာဘေ့စ်အမည်
    $username = 'root';    // ဒေတာဘေ့စ်အသုံးပြုသူအမည်
    $password = '';        // ဒေတာဘေ့စ်စကားဝှက်

    try {
        // ဒေတာဘေ့စ် connection တစ်ခုတည်ဆောက်ရန်ကြိုးစားပါ
        $pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
        // တည်ဆောက်သည်PDOချို့ယွင်းချက်သည်ခြွင်းချက်ဖြစ်သည်
        $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        return $pdo;
    } catch (PDOException $e) {
        // ခြွင်းချက်များ,အမှားမက်ဆေ့ခ်ျကိုပြန်လာပါ
        echo "ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $e->getMessage();
        return null;
    }
}
?>

ဤကုဒ်သည်ဒေတာဘေ့စ်လုပ်ငန်းများအတွက် PDO OFF ကိုပြန်ပေးသည့်ရိုးရှင်းသောဒေတာဘေ့စ် connection connection connectocatabase တစ်ခုပေးသည်။ ဆက်သွယ်မှုမအောင်မြင်ပါက function သည် null ပြန်လာသည်။

3 ။ အလိုအလျောက်ပြန်လည်ချိတ်ဆက်မှုယန္တရားကိုအကောင်အထည်ဖော်ပါ

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

 <?php
function reconnectIfNeeded($pdo) {
    // လှျင် PDO အရာဝတ်ထုဗလာဖြစ်ပါတယ်,表示数据库ဆက်သွယ်မှုမအောင်မြင်ပါ
    if ($pdo === null) {
        // ပြန်လည်ချိတ်ဆက်ရန်ကြိုးစားပါ
        echo "正在ပြန်လည်ချိတ်ဆက်ရန်ကြိုးစားပါ数据库...";
        $pdo = connectToDatabase();
    }

    // ဆက်သွယ်မှုအောင်မြင်မှုရှိမရှိဆုံးဖြတ်ရန်
    if ($pdo !== null) {
        echo "ဒေတာဘေ့စ်ဆက်သွယ်မှုအောင်မြင်သည်!";
    } else {
        echo "数据库ဆက်သွယ်မှုမအောင်မြင်ပါ,ကျေးဇူးပြု. နောက်မှထပ်ကြိုးစားပါ。";
    }

    return $pdo;
}

// ဒေတာဘေ့စ်စစ်ဆင်ရေးကိုတုပ
function queryDatabase($pdo) {
    try {
        // ရိုးရှင်းသောစုံစမ်းမှုစစ်ဆင်ရေးလုပ်ဆောင်ပါ
        $stmt = $pdo->query("SELECT * FROM users");
        while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
            print_r($row);
        }
    } catch (PDOException $e) {
        // ဖမ်းဆီး PDO ထူးခြားသော,နှင့်အမှားကုဒ်အပေါ်အခြေခံပြီးပြန်လည်ချိတ်ဆက်ရန်ရှိမရှိဆုံးဖြတ်ပါ
        if ($e->getCode() == 2002 || $e->getCode() == 2006 || $e->getCode() == 2013) {
            echo "ဒေတာဘေ့စ်ဆက်သွယ်မှုပြတ်တောက်,ပြန်လည်ချိတ်ဆက်ရန်ကြိုးစားပါ...\n";
            // အဆိုပါ reacknect function ကိုခေါ်ခြင်း
            $pdo = reconnectIfNeeded($pdo);
            // နောက်တဖန်ဒေတာဘေ့စ်ကိုမေးမြန်းဖို့ကြိုးစားပါ
            queryDatabase($pdo);
        } else {
            // အခြားအမှားများ,输出ထူးခြားသော信息
            echo "စုံစမ်းမှုမအောင်မြင်ပါ: " . $e->getMessage();
        }
    }
}

// ဒေတာဘေ့စ်ဆက်သွယ်မှုကိုစတင်ပါ
$pdo = connectToDatabase();

// စုံစမ်းမှုစစ်ဆင်ရေးလုပ်ဆောင်ပါ
queryDatabase($pdo);
?>

ကုဒ်ရှင်းပြချက်:

  1. ConnectocTabase () : ဒေတာဘေ့စ် connection ကိုတည်ထောင်ရန်အသုံးပြုသည်။

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

  3. queryDatabase () : ဒီ function ကိုဒေတာဘေ့စ်စုံစမ်းမှု excatues ။ ဆက်သွယ်မှုအမှားတစ်ခုဖြစ်ပါက (အမှားကုဒ် 2002, 2006, 2006, 2013) ကို ပြန်လည်ချိတ်ဆက်ခြင်း () reacknectifneeded () ကိုအလိုအလျောက်ပြန်လည်ချိတ်ဆက်ခြင်းနှင့်စုံစမ်းမှုကိုပြန်လည်ချိတ်ဆက်ပါလိမ့်မည်။

ဒေတာဘေ့စ်လုပ်ငန်းများလုပ်ဆောင်သောအခါ, ကျွန်ုပ်တို့သည် try-catch via မှတစ်ဆင့်ခြွင်းချက်ကိုဖမ်းပြီး $ errno error error code ကိုစစ်ဆေးသည်။ ဆက်သွယ်မှုကြားဖြတ်အမှားတစ်ခုကြုံတွေ့ရသောအခါပြန်လည်ချိတ်ဆက်ခြင်းနှင့်မေးမြန်းခြင်းအလိုအလျောက် ec-execute သည်။

4 ။ အကျဉ်းချုပ်

ဒေတာဘေ့စ် connection ပြတ်တောက်ခြင်းပြတ်တောက်မှုကိုထိရောက်စွာဖမ်းယူနိုင်ရန်အတွက် $ errno error code ကိုသုံးပါ။ အထက်ပါကုဒ်ဥပမာသည်ဒေတာဘေ့စ်၏ဆက်သွယ်မှုအမှားများကိုမည်သို့ကိုင်တွယ်ရမည်ကိုပြသပြီး PHP တွင်ပြန်လည်ချိတ်ဆက်မှုကိုမည်သို့ကိုင်တွယ်ရမည်ကိုပြသသည်။ ကျိုးကြောင်းဆီလျော်သောအမှားဖြင့်ကိုင်တွယ်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည် application သည်ပုံမှန်အားဖြင့်ဒေတာဘေ့စ်ပျက်ကွက်မှု၏မျက်နှာတွင်ပုံမှန်လည်ပတ်နိုင်ကြောင်းသေချာစေနိုင်သည်။