developer များသည် PHP ကို အသုံးပြု. MySQL နှင့်အပြန်အလှန်ဆက်သွယ်သောအခါ connection အမှားများသို့မဟုတ်စွမ်းဆောင်ရည်ပြ issues နာများကိုမကြာခဏတွေ့ကြုံခံစားလေ့ရှိသည်။ MySQLI :: MySQLI_OPTTYS သည် MySQL connection property များကိုပိုမိုကောင်းမွန်စေရန်နှင့် MySQL connection property များကိုဖြေရှင်းရန်နှင့်ညှိနှိုင်းခြင်းများကိုဖြေရှင်းနိုင်ရန်ကူညီနိုင်သည်။ ဤဆောင်းပါးသည်ဤကိရိယာများကို MySQL ဆက်သွယ်မှုတစ်ခုကို debug လုပ်ရန်ဤကိရိယာများကိုမည်သို့အသုံးပြုရမည်ကိုအသေးစိတ်ရှင်းပြပါမည်။
MySQL သည် MySQL နှင့်အပြန်အလှန်ဆက်သွယ်သည့်အခါပြ problems နာများကိုဖော်ထုတ်ရန်အတွက် seveloper များကိုရှာဖွေရန်ကူညီရန်ဆက်သွယ်မှုရွေးချယ်စရာများနှင့်အမှားကုဒ်များကိုထောက်ပံ့ပေးသည်။ MySQLI :: MySQLI :: MySQLI_OPTTS ကဲ့သို့သောကိရိယာများကို MySQLI :: MySQLI_OPTTTS ကဲ့သို့သောကိရိယာများကိုထောက်ပံ့ပေးသည်။
MySQLI :: $ errno သည် MySQL စစ်ဆင်ရေးမအောင်မြင်သောအခါအမှားကုဒ်ကိုကိုယ်စားပြုသည့်ကိန်းဂဏန်းဖြစ်သည်။ ဤပိုင်ဆိုင်မှုသည်ဒေတာဘေ့စ် connection မအောင်မြင်ပါက database connection တစ်ခုပျက်ပြားသွားသောအခါသို့မဟုတ် SQL Query ကိုကွပ်မျက်စဉ်အမှားအယွင်းတစ်ခုဖြစ်ပေါ်လာသည်။ ဤအမှားကုဒ်ကိုခွဲခြမ်းစိတ်ဖြာခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်အမှား၏အကြောင်းရင်းကိုနားလည်ရန်ကျွန်ုပ်တို့ကိုကူညီနိုင်သည်။
သာမန် MySQL အမှားကုဒ်များတွင် -
2002 : MySQL server သို့ ဆက်သွယ်. မရပါ
1045 : ငြင်းပယ်ခြင်း, သုံးစွဲသူအမည်သို့မဟုတ်စကားဝှက်အမှား
1049 : သတ်မှတ်ထားသောဒေတာဘေ့စ်မရှိပါ
MySQLI_OPTOOPT လုပ်ငန်းသည် MYSQL ဆက်သွယ်မှုတစ်ခုဖန်တီးသောအခါမတူညီသောဆက်သွယ်မှုရွေးချယ်စရာများကိုသတ်မှတ်ရန်ခွင့်ပြုသည်။ ဤရွေးချယ်စရာများမှတစ်ဆင့် MySQL ဆက်သွယ်မှုများ၏အပြုအမူ ကို ချိန်ညှိခြင်း,
ဘုံရွေးချယ်စရာများတွင် -
MySQLI_OPT_CONCECET_TIMEOOT : ဆက်သွယ်မှုအချိန်ကုန်အချိန်ကိုသတ်မှတ်သည်။
MySQLI_OPT_LOCAL_INFILFILFILFILFILFION : load data local command ကို enable သို့မဟုတ် disable လုပ်ပါ။
MySQLI_OPT_CASTRAPRE : ဒေတာချုံ့မှုကို Enable သို့မဟုတ် disable ။
MySQLI :: $ errno နှင့်အတူဆက်သွယ်မှုကိုထူထောင်ပြီးနောက်အောင်မြင်မှုရှိမရှိဆုံးဖြတ်နိုင်သည်။ ဆက်သွယ်မှုပျက်ကွက်ပါက MySQLI :: $ အမှား မှတစ်ဆင့်အသေးစိတ်အမှားအချက်အလက်များကိုသင်ရနိုင်သည်။
<?php
$mysqli = new mysqli("m66.net", "username", "password", "database");
if ($mysqli->connect_errno) {
echo "ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $mysqli->connect_error;
exit();
}
echo "အောင်မြင်စွာဆက်သွယ်မှု!";
?>
ဒီဥပမာမှာ $ MySQLI-> Connect_errno ဟာ သုညတန်ဖိုးမရှိတဲ့တန်ဖိုးကိုပြန်ပို့မယ်ဆိုရင်ဆက်သွယ်မှုမအောင်မြင်ဘူးလို့ဆိုလိုတယ်။ ကျွန်ုပ်တို့သည်အမှားကုဒ်အရနောက်ထပ်ပြ troubl နာဖြေရှင်းနိုင်သည်။
တခါတရံတွင် MySQL ဆက်သွယ်မှုတစ်ခုသို့မဟုတ်မတိုက်ဆိုင်သည့်ဇာတ်ကောင်များကြောင့်မတိုက်ဆိုင်သည့်ဇာတ်ကောင်များကြောင့်မအောင်မြင်ပါ။ ဤချိန်ညှိချက်များကို MySQLI_OPTOOTS ကို အသုံးပြု. ချိန်ညှိနိုင်သည်။
ဥပမာအားဖြင့်ကျွန်ုပ်တို့သည် connection connection အချိန်ကုန်ကိုသံသယရှိပါက MySQLI_OPT_Connect_Timeout ကိုချိန်ညှိနိုင်သည်။
<?php
$mysqli = new mysqli();
$timeout = 10; // ဆက်သွယ်မှုအချိန်ကုန်ကိုသတ်မှတ်ပါ10စက်ဏန့်
// connection timeout သတ်မှတ်ပါ
$mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT, $timeout);
$mysqli->real_connect("m66.net", "username", "password", "database");
if ($mysqli->connect_errno) {
echo "ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $mysqli->connect_error;
exit();
}
echo "အောင်မြင်စွာဆက်သွယ်မှု!";
?>
ချိတ်ဆက်နေစဉ်အချိန်ကုန်အမှားတစ်ခုဖြစ်ပေါ်ပါက MySQL ဆာဗာ၏ကွန်ယက် latency သို့မဟုတ်နှေးကွေးစွာတုန့်ပြန်မှုကြောင့်ဆက်သွယ်မှုပြတ်တောက်မှုကိုရှောင်ရှားရန် MySQLI_OPT_Connect_Timeout ကို ချိန်ညှိနိုင်သည်။
MySQLI :: $ errno မှတစ်ဆင့်သတ်သတ်မှတ်မှတ်အမှားကုဒ်ကိုရယူပြီးသည့်နောက်အမှားအမျိုးအစားအရကွဲပြားခြားနားသောအစီအမံများကိုကျွန်ုပ်တို့ယူနိုင်သည်။ ဥပမာအားဖြင့်:
<?php
$mysqli = new mysqli("m66.net", "username", "wrong_password", "database");
if ($mysqli->connect_errno) {
switch ($mysqli->connect_errno) {
case 1045:
echo "မမှန်ကန်သောအသုံးပြုသူအမည်သို့မဟုတ်စကားဝှက်,ကျေးဇူးပြုပြီးဝင်သောဘောက်ချာကိုစစ်ဆေးပါ";
break;
case 2002:
echo "ချိတ်ဆက်. မရပါ MySQL ဆာဆာ,请检查ဆာဆာ地址和端口";
break;
default:
echo "ဆက်သွယ်မှုမအောင်မြင်ပါ,အမှားကုဒ်: " . $mysqli->connect_errno;
}
exit();
}
?>
ဤနည်းလမ်းသည်အမှားအယွင်းများကိုတိကျစွာရှာဖွေရန်နှင့်သက်ဆိုင်သောပြုပြင်ပြောင်းလဲမှုများပြုလုပ်ရန်ကျွန်ုပ်တို့အားကူညီနိုင်သည်။
ဤအမှားသည်များသောအားဖြင့်လက်လှမ်းမမှီနိုင်သောဒေတာဘေ့စ်ဆာဗာများသို့မဟုတ် port configuration အမှားများကြောင့်ဖြစ်သည်။ ဖြေရှင်းချက်များပါဝင်သည်:
MySQL ဆာဗာလည်ပတ်နေကြောင်းစစ်ဆေးပါ။
ကွန်ယက်ချိတ်ဆက်မှုနှင့်အတူပြ problem နာမရှိကြောင်းသေချာပါစေ။
M66.net Domain Name Name Resolution သည်မှန်ကန်ကြောင်းသေချာပါစေ။
ဤအမှားကဒေတာဘေ့စ်ဆက်သွယ်မှု၏အထောက်အထားများသည်မမှန်ကန်ကြောင်းဖော်ပြသည်။ ဖြေရှင်းချက်များပါဝင်သည်:
အသုံးပြုသူအမည်နှင့်စကားဝှက်မှန်ကန်ကြောင်းစစ်ဆေးပါ။
MySQL အသုံးပြုသူသည်သတ်မှတ်ထားသောဒေတာဘေ့စ်နှင့်ချိတ်ဆက်ရန်လုံလောက်သောခွင့်ပြုချက်ရှိသည်။
ဤအမှားကတောင်းဆိုထားသောဒေတာဘေ့စ်သည်ဆာဗာတွင်မတည်ရှိကြောင်းဖော်ပြသည်။ ဖြေရှင်းချက်များပါဝင်သည်:
ဒေတာဘေ့စ်အမည်မှန်ကန်ကြောင်းစစ်ဆေးပါ။
ဒေတာဘေ့စ်ကို MySQL server ပေါ်တွင်ဖန်တီးကြောင်းသေချာပါစေ။
MySQLI :: MySQLI_OPTOOPTOOTS နှင့် MYSQLI နှင့် MYSQLI_OPTOOTS ဖြင့်ကျွန်ုပ်တို့သည် MySQL ဆက်သွယ်မှုပြ problems နာများကိုဖြေရှင်းနိုင်ရန်နှင့်ဖြေရှင်းနိုင်သည်။ ဤကိရိယာများကို အသုံးပြု. မှန်ကန်စွာအသုံးပြုခြင်းသည်ပြ problems နာများကိုအချိန်မီဖော်ထုတ်ရန်နှင့်ဒေတာဘေ့စ်စစ်ဆင်ရေး၏တည်ငြိမ်မှုနှင့်ယုံကြည်စိတ်ချရမှုကိုသေချာစေရန်သင့်လျော်သောလုပ်ဆောင်မှုများကိုပြုလုပ်နိုင်သည်။