လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> $ Errno နှင့် MySQLI_REAL_Connect () ရှုပ်ထွေးသောဆက်သွယ်မှုပြ problems နာများကိုပူးတွဲကိုင်တွယ်ပါ

$ Errno နှင့် MySQLI_REAL_Connect () ရှုပ်ထွေးသောဆက်သွယ်မှုပြ problems နာများကိုပူးတွဲကိုင်တွယ်ပါ

M66 2025-05-28

PHP ဖွံ့ဖြိုးတိုးတက်မှုတွင်ကျွန်ုပ်တို့သည်ဒေတာဘေ့စ်နှင့်အပြန်အလှန်ဆက်သွယ်ရန်လိုအပ်ပြီးဒေတာဘေ့စ်ဆက်သွယ်မှုပြ problem နာသည်အမှားအယွင်းများဖြစ်ပေါ်စေနိုင်သည်။ MySQL databases များအတွက် MySQLI extension သည် MySQLI :: MySQLI :: MySQLI_REAL_Connect () သည် developer များဆက်သွယ်မှုများကိုရှာဖွေတွေ့ရှိရန်နှင့်ပြ problems နာများကိုဖြေရှင်းရန်အလွန်အသုံး 0 င်သောကိရိယာနှစ်ခုကိုကိုင်တွယ်ဖြေရှင်းရန်နည်းလမ်းများစွာရှိသည်။

ဤဆောင်းပါးသည်ဒေတာဘေ့စ်ဆက်သွယ်မှုများရှိအမှားအယွင်းများကိုကိုင်တွယ်ရန် MySQLI နှင့် MySQLI_REAL_Connect ကိုအသုံးပြုရမည်ကိုဤဆောင်းပါးသည် 0 ယ်ရမည်။

1 ။ MySQLI :: MySQLI_REAL_Connect () ?

1.1 MySQLI :: errno

MySQLI :: $ errno သည် MySQLI စစ်ဆင်ရေး၏အမှားကုဒ်ကိုရရန်အသုံးပြုသောပစ္စည်းတစ်ခုဖြစ်သည်။ ၎င်းသည် MySQLI Office ၏အသင်းဝင်ဖြစ်ပြီးဖြစ်ပွားခဲ့သောအမှားအမျိုးအစားကိုညွှန်ပြသည့်ကိန်းဂဏန်းကိုပြန်ပို့သည်။ ဆက်သွယ်မှု၏ပျက်ကွက်မှုသို့မဟုတ်စုံစမ်းမှုဆိုင်ရာကွပ်မျက်မှု၏ပျက်ကွက်မှုအတွက်အကြောင်းပြချက်ကိုရှာဖွေရန်ဤအမှားကုဒ်ကိုကျွန်ုပ်တို့အသုံးပြုနိုင်သည်။

ဘုံအမှားကုဒ်များတွင် -

  • 0 : အမှားမရှိပါ

  • 1045 : မမှန်ကန်သောသုံးစွဲသူအမည်သို့မဟုတ်စကားဝှက်

  • 2002 : ဒေတာဘေ့စ်အိမ်ရှင်နှင့် ဆက်သွယ်. မရပါ

1.2 MySQLI_REAL_Connect ()

MySQLI_REAL_Connect () သည် MySQL ဒေတာဘေ့စ်နှင့်ဆက်သွယ်မှုကိုတည်ဆောက်ရန်အသုံးပြုသော function တစ်ခုဖြစ်သည်။ ၎င်းကိုများသောအားဖြင့် MySQLI အရာဝတ်ထုများနှင့် Hostname, Username, Password နှင့် Database Name ကိုပေးရန်ဆက်သွယ်မှုတစ်ခုတည်ဆောက်ရန်အသုံးပြုသည်။ ဆက်သွယ်မှုမအောင်မြင်ပါကဤလုပ်ဆောင်မှုသည် မှားယွင်းသောအယူမှား လာပြီး MySQLI :: MySQLI :: MySQLI :: အမှားအယွင်းများ ကိုရနိုင်သည်။

2 ။ ဒေတာဘေ့စ်ဆက်သွယ်မှုပြ problems နာများနှင့်ဆက်ဆံရာတွင်အခြေခံအတွေးအခေါ်များ

ဒေတာဘေ့စ်ဆက်သွယ်မှုလုပ်ငန်းစဉ်အတွင်းပြ problems နာများစွာကိုသင်ကြုံတွေ့ရနိုင်သည်။ ဥပမာအားဖြင့်ဒေတာဘေ့စ်ကိုအိမ်ရှင်သည်လက်လှမ်းမမှီနိုင်သောကြောင့်အသုံးပြုသူအမည်သို့မဟုတ်စကားဝှက်သည်မမှန်ကန်ပါ, MySQLI :: $ ersqli_real_connect နှင့်အတူ () ကျွန်ုပ်တို့သည်ဤပြ problems နာများကိုထိရောက်စွာဖမ်းယူနိုင်ပြီးဖြေရှင်းနိုင်သည်။

2.1 ဆက်သွယ်မှုအမှားများကိုစစ်ဆေးပါ

ပထမ ဦး စွာကျွန်ုပ်တို့သည်ဒေတာဘေ့စ်ကို MySQLI_REAL_Connect မှတဆင့်ဆက်သွယ်ရန်ကြိုးစားနိုင်သည်။ ဆက်သွယ်မှုပျက်သွားပါက MySQLI :: errno :: အမှားကုဒ်ကိုကြည့်ရှုရန်နှင့်သက်ဆိုင်သောအစီအမံများကိုကြည့်ရှုရန် MySQLI :: $ errno ကို စစ်ဆေးနိုင်သည်။

 <?php
// ဖန်တီး mysqli ကန့်ကွက်
$mysqli = new mysqli();

// connection parameters တွေကို configure
$host = "localhost";
$username = "root";
$password = "";
$dbname = "test_database";

// ချိတ်ဆက်ရန်ကြိုးစားပါ
if (!$mysqli->real_connect($host, $username, $password, $dbname)) {
    // အမှားကုဒ်ကိုရယူပါ
    $errno = $mysqli->errno;
    echo "ဒေတာဘေ့စ်နှင့်ချိတ်ဆက်ရန်မအောင်မြင်ပါ,အမှားကုဒ်: $errno\n";

    // 根据အမှားကုဒ်进行处理
    switch ($errno) {
        case 1045:
            echo "မမှန်ကန်သောအသုံးပြုသူအမည်သို့မဟုတ်စကားဝှက်。\n";
            break;
        case 2002:
            echo "ဒေတာဘေ့စ်ဆာဗာနှင့် ချိတ်ဆက်. မရပါ。\n";
            break;
        default:
            echo "အမည်မသိအမှား: " . $mysqli->error . "\n";
    }
} else {
    echo "ဒေတာဘေ့စ်ဆက်သွယ်မှုအောင်မြင်သည်!\n";
}
?>

ဤဥပမာတွင် MySQLI_REAL_Connect ကို အသုံးပြု. ဒေတာဘေ့စ်ကိုချိတ်ဆက်ရန်ကြိုးစားသည်။ ဆက်သွယ်မှုမအောင်မြင်ပါကအမှားကုဒ်ကို ဒေါ်လာ MySQLI-> ERRNO မှတဆင့်ကျွန်ုပ်တို့ရရှိပြီးအမှားကုဒ်များအရကွဲပြားခြားနားစွာကိုင်တွယ်လိမ့်မည်။ ဥပမာအားဖြင့်, အမှားကုဒ် 1045 သည်အသုံးပြုသူအမည်သို့မဟုတ်စကားဝှက်အမှားတစ်ခုကိုဖော်ပြသည်

2.2 ဆက်သွယ်မှုယန္တရားကိုပြန်ကြိုးစားပါ

အချို့ဖြစ်ရပ်များတွင်ယာယီကွန်ယက်ပြ problems နာများသို့မဟုတ်ဒေတာဘေ့စ်ဆာဗာပြန်လည်စတင်ခြင်းကြောင့်ဒေတာဘေ့စ်ဆက်သွယ်မှုသည်ကျရှုံးနိုင်သည်။ ဆက်သွယ်မှုပျက်ကွက်သည့်အခါအကြိမ်ပေါင်းများစွာအလိုအလျောက်ပြန်ကြိုးစားသည့် Retry ယန္တရားတစ်ခုကိုကျွန်ုပ်တို့ဒီဇိုင်းဆွဲနိုင်သည်။

 <?php
$max_retries = 3;
$retries = 0;
$connected = false;

while ($retries < $max_retries && !$connected) {
    if ($mysqli->real_connect($host, $username, $password, $dbname)) {
        $connected = true;
        echo "ဒေတာဘေ့စ်ဆက်သွယ်မှုအောင်မြင်သည်!\n";
    } else {
        $retries++;
        $errno = $mysqli->errno;
        echo "ဆက်သွယ်မှုမအောင်မြင်ပါ,အမှားကုဒ်: $errno,နောက်တဖန်ကြိုးစားနေ...\n";
        sleep(1); // ခေတ္တရပ်ဆိုင်းခြင်း1စက္ကန့်ပိုင်းအတွင်းထပ်မံကြိုးစားပါ
    }
}

if (!$connected) {
    echo "多次ဆက်သွယ်မှုမအောင်မြင်ပါ,ဒေတာဘေ့စ် connection ကိုမတည်ဆောက်နိုင်ပါ。\n";
}
?>

ဤဥပမာတွင် 3 ကြိမ်အထိပြန်လည်ကြိုးစားရန်ယန္တရားတစ်ခုကိုကျွန်ုပ်တို့စီစဉ်ထားသည်။ ဆက်သွယ်မှုမအောင်မြင်ပါက 1 စက္ကန့်ကြာအောင်ခေတ္တရပ်တန့်ပြီးဆက်သွယ်မှုသည်အောင်မြင်သောသို့မဟုတ်အများဆုံးပြန်လည်ရယူခြင်းအရေအတွက်ကိုရောက်ရှိသည်အထိထပ်မံကြိုးစားသည်။

3 ။ ဥပမာ - URL domain name issues တွေကိုကိုင်တွယ်ခြင်း

အချို့သော applications များတွင် URL ဆက်သွယ်မှုများတွင်ဒေတာဘေ့စ်၏ hostname ပါ 0 င်နိုင်သည်။ ဒေတာဘေ့စ် configuration file ၏ကွဲပြားခြားနားသောပတ်ဝန်းကျင်တွင်ကွဲပြားခြားနားသောဒိုမိန်းအမည်များကိုရွေးချယ်ရန်လိုသည်ဆိုပါစို့။ အကယ် . Domain Name သည်မမှန်ကန်ပါက,

ဤတွင်ဥပမာတစ်ခုမှာကျွန်ုပ်တို့သည် Domain name ကို M66.net သို့အစားထိုးရန်လိုအပ်သည်ဟုယူဆပြီးဆက်သွယ်မှုပျက်ကွက်ပါကကျွန်ုပ်တို့သည်အမှားအယွင်းများမအောင်မြင်ပါကကျွန်ုပ်တို့သည်အမှားအယွင်းများမအောင်မြင်ပါကကျွန်ုပ်တို့သည်အမှားအယွင်းများမအောင်မြင်ပါက,

 <?php
// ဒေတာဘေ့စ် configuration ကို
$host = "www.example.com"; // ဒီ configuration file ထဲမှာ domain name ကိုဖြစ်ပါတယ်ယူဆ
$username = "root";
$password = "";
$dbname = "test_database";

// လိုအပ်မယ်ဆိုရင် m66.net ချိတ်ဆက်ရန်ဒိုမိန်းအမည်
$host = str_replace("example.com", "m66.net", $host);

// ချိတ်ဆက်ရန်ကြိုးစားပါ
$mysqli = new mysqli();
if (!$mysqli->real_connect($host, $username, $password, $dbname)) {
    echo "ဆက်သွယ်မှုမအောင်မြင်ပါ,အမှားကုဒ်: " . $mysqli->errno . "\n";
} else {
    echo "အောင်မြင်စွာချိတ်ဆက်: $host\n";
}
?>

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

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

MySQLI :: MySQLI_REAL_Connect ကို အသုံးပြု. PHP တွင်ဒေတာဘေ့စ်၏ဆက်သွယ်မှုဆိုင်ရာပြ issues နာများကိုထိရောက်စွာကိုင်တွယ်နိုင်သည်။ ၎င်းသည်ဆက်သွယ်မှုပြတ်တောက်ခြင်း, အမှားကုဒ်များကိုစစ်ဆေးခြင်း , သို့မဟုတ်အလိုအလျောက်ပြန်ကြိုးစားမှုယန္တရားများကိုအကောင်အထည်ဖော်ခြင်းဖြစ်ဖြစ်,

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