PHP ဖွံ့ဖြိုးတိုးတက်မှုတွင်ကျွန်ုပ်တို့သည်ဒေတာဘေ့စ်နှင့်အပြန်အလှန်ဆက်သွယ်ရန်လိုအပ်ပြီးဒေတာဘေ့စ်ဆက်သွယ်မှုပြ problem နာသည်အမှားအယွင်းများဖြစ်ပေါ်စေနိုင်သည်။ MySQL databases များအတွက် MySQLI extension သည် MySQLI :: MySQLI :: MySQLI_REAL_Connect () သည် developer များဆက်သွယ်မှုများကိုရှာဖွေတွေ့ရှိရန်နှင့်ပြ problems နာများကိုဖြေရှင်းရန်အလွန်အသုံး 0 င်သောကိရိယာနှစ်ခုကိုကိုင်တွယ်ဖြေရှင်းရန်နည်းလမ်းများစွာရှိသည်။
ဤဆောင်းပါးသည်ဒေတာဘေ့စ်ဆက်သွယ်မှုများရှိအမှားအယွင်းများကိုကိုင်တွယ်ရန် MySQLI နှင့် MySQLI_REAL_Connect ကိုအသုံးပြုရမည်ကိုဤဆောင်းပါးသည် 0 ယ်ရမည်။
MySQLI :: $ errno သည် MySQLI စစ်ဆင်ရေး၏အမှားကုဒ်ကိုရရန်အသုံးပြုသောပစ္စည်းတစ်ခုဖြစ်သည်။ ၎င်းသည် MySQLI Office ၏အသင်းဝင်ဖြစ်ပြီးဖြစ်ပွားခဲ့သောအမှားအမျိုးအစားကိုညွှန်ပြသည့်ကိန်းဂဏန်းကိုပြန်ပို့သည်။ ဆက်သွယ်မှု၏ပျက်ကွက်မှုသို့မဟုတ်စုံစမ်းမှုဆိုင်ရာကွပ်မျက်မှု၏ပျက်ကွက်မှုအတွက်အကြောင်းပြချက်ကိုရှာဖွေရန်ဤအမှားကုဒ်ကိုကျွန်ုပ်တို့အသုံးပြုနိုင်သည်။
ဘုံအမှားကုဒ်များတွင် -
0 : အမှားမရှိပါ
1045 : မမှန်ကန်သောသုံးစွဲသူအမည်သို့မဟုတ်စကားဝှက်
2002 : ဒေတာဘေ့စ်အိမ်ရှင်နှင့် ဆက်သွယ်. မရပါ
MySQLI_REAL_Connect () သည် MySQL ဒေတာဘေ့စ်နှင့်ဆက်သွယ်မှုကိုတည်ဆောက်ရန်အသုံးပြုသော function တစ်ခုဖြစ်သည်။ ၎င်းကိုများသောအားဖြင့် MySQLI အရာဝတ်ထုများနှင့် Hostname, Username, Password နှင့် Database Name ကိုပေးရန်ဆက်သွယ်မှုတစ်ခုတည်ဆောက်ရန်အသုံးပြုသည်။ ဆက်သွယ်မှုမအောင်မြင်ပါကဤလုပ်ဆောင်မှုသည် မှားယွင်းသောအယူမှား လာပြီး MySQLI :: MySQLI :: MySQLI :: အမှားအယွင်းများ ကိုရနိုင်သည်။
ဒေတာဘေ့စ်ဆက်သွယ်မှုလုပ်ငန်းစဉ်အတွင်းပြ problems နာများစွာကိုသင်ကြုံတွေ့ရနိုင်သည်။ ဥပမာအားဖြင့်ဒေတာဘေ့စ်ကိုအိမ်ရှင်သည်လက်လှမ်းမမှီနိုင်သောကြောင့်အသုံးပြုသူအမည်သို့မဟုတ်စကားဝှက်သည်မမှန်ကန်ပါ, MySQLI :: $ ersqli_real_connect နှင့်အတူ () ကျွန်ုပ်တို့သည်ဤပြ problems နာများကိုထိရောက်စွာဖမ်းယူနိုင်ပြီးဖြေရှင်းနိုင်သည်။
ပထမ ဦး စွာကျွန်ုပ်တို့သည်ဒေတာဘေ့စ်ကို 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 သည်အသုံးပြုသူအမည်သို့မဟုတ်စကားဝှက်အမှားတစ်ခုကိုဖော်ပြသည် ။
အချို့ဖြစ်ရပ်များတွင်ယာယီကွန်ယက်ပြ 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 စက္ကန့်ကြာအောင်ခေတ္တရပ်တန့်ပြီးဆက်သွယ်မှုသည်အောင်မြင်သောသို့မဟုတ်အများဆုံးပြန်လည်ရယူခြင်းအရေအတွက်ကိုရောက်ရှိသည်အထိထပ်မံကြိုးစားသည်။
အချို့သော 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 မှတဆင့်ရနိုင်သည်။
MySQLI :: MySQLI_REAL_Connect ကို အသုံးပြု. PHP တွင်ဒေတာဘေ့စ်၏ဆက်သွယ်မှုဆိုင်ရာပြ issues နာများကိုထိရောက်စွာကိုင်တွယ်နိုင်သည်။ ၎င်းသည်ဆက်သွယ်မှုပြတ်တောက်ခြင်း, အမှားကုဒ်များကိုစစ်ဆေးခြင်း , သို့မဟုတ်အလိုအလျောက်ပြန်ကြိုးစားမှုယန္တရားများကိုအကောင်အထည်ဖော်ခြင်းဖြစ်ဖြစ်,
အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်ဤကိရိယာများကိုနားလည်ခြင်းနှင့်ကျွမ်းကျင်ခြင်းတို့သည်ကျွန်ုပ်တို့၏ debugging ထိရောက်မှုကိုတိုးတက်စေပြီးဆက်သွယ်မှုပြ problems နာများကြောင့်ဖြစ်ပေါ်လာသောအမှားများကိုလျော့နည်းစေသည်။ ဤဆောင်းပါးတွင်ဥပမာများကသင်၏ဒေတာဘေ့စ် connection code ကိုအကောင်းဆုံးလုပ်ရန်ဤကိရိယာများကိုမည်သို့အသုံးပြုရမည်ကိုပိုမိုနားလည်ရန်မျှော်လင့်ပါသည်။