PHP ဖွံ့ဖြိုးတိုးတက်မှုတွင်ဒေတာဘေ့စ်လုပ်ငန်းများသည်အသုံးအများဆုံးအစိတ်အပိုင်းဖြစ်သည်။ ဒေတာဘေ့စ်များနှင့်အပြန်အလှန်ဆက်သွယ်သောအခါအထူးသဖြင့် MySQLI extensions ကိုအသုံးပြုသောအခါအမှားဖမ်းယူခြင်းနှင့်မှတ်တမ်းတင်ခြင်းတို့သည်အစီအစဉ်ချရေးနှင့်ပြုပြင်ထိန်းသိမ်းမှုအတွက်အရေးပါသည်။ MySQLI :: $ ersqli :: mysqli :: $ အမှား attribute တွေဟာ Develabase Operations မှာရှိတဲ့အမှားအယွင်းတွေရဲ့ထူးခွားတဲ့အကြောင်းရင်းတွေကိုနားလည်အောင်ကူညီပေးဖို့ဒေါ်လာအမှား attribute တွေပေးတယ်။
ဤဆောင်းပါးသည် MySQLI :: $ errno ကို အသုံးပြုရမည်, ထိရောက်သောအမှားသစ်ထုတ်လုပ်ခြင်းအတွက် Develabase Connections နှင့်လုပ်ငန်းလည်ပတ်မှုများအတွင်းကြုံတွေ့ရနိုင်သည့် developer များပိုမိုကောင်းမွန်စွာကိုင်တွယ်ရန်ကူညီသည်။
MySQLI :: $ errno သည် MySQLI အတန်း၏ပိုင်ဆိုင်မှုတစ်ခုဖြစ်ပြီးနောက်ဆုံးဒေတာဘေ့စ်လည်ပတ်မှုတွင်အမှားတစ်ခုဖြစ်ပွားသည့်အခါအမှားကုဒ်ကိုသိမ်းဆည်းရန်အသုံးပြုသည်။ ဤအမှားကုဒ်သည်ဖြစ်ပွားခဲ့သောတိကျသောအမှားအမျိုးအစားကိုခွဲခြားသတ်မှတ်သည့်ကိန်းဂဏန်းဖြစ်သည်။ MySQLI :: $ errno သည် ဒေတာဘေ့စ်လည်ပတ်မှုတွင်အမှားတစ်ခုဖြစ်ပေါ်သောအခါတရားဝင်တန်ဖိုးများကိုသာရနိုင်သည်။ အမှားမရှိပါက၎င်း၏တန်ဖိုးသည် 0 ဖြစ်လိမ့်မည်။
ထို့အပြင် MySQLI :: $ error error attribute တွင်အမှားအယွင်းအမည်ရှိအမှားအယွင်းများ (i.E. , အမှားအယွင်း) တွင်အသေးစိတ်ဖော်ပြထားသည်။ ဒီ attribute နှစ်ခုဟာ developer တွေကိုတိကျစွာပြ problem နာကိုသေချာအောင်ကူညီပေးနိုင်ပါတယ်။
MySQLI :: $ errno ၏အမှားကုဒ်တန်ဖိုးကိုကြိုတင်သတ်မှတ်ထားသည်။ ဤတွင်အချို့သောဘုံအမှားကုဒ်များနှင့်သူတို့၏အဓိပ္ပါယ်များရှိသည်။
1045 : ဒေတာဘေ့စ်ကိုကြည့်သောအခါ Database (ဥပမာအသုံးပြုသူအမည်သို့မဟုတ်စကားဝှက်အမှား) ကိုကြည့်သောအခါခွင့်ပြုချက်အမှား။
2002- ဆက်သွယ်မှုသည်ပုံမှန်အားဖြင့်ဒေတာဘေ့စ်လက်ခံမှုသည်လက်လှမ်းမမှီနိုင်သောကြောင့်ပျက်ကွက်သည်။
1146 : စားပွဲပေါ်မှာမတည်ရှိပါဘူး။
1064 : SQL syntax အမှား။
အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်အမှားအယွင်းများကိုအမီလိုက်ခြင်းအပြင်ဤအမှားများကိုနောက်ပိုင်းတွင်ကြည့်ရှုခြင်းနှင့်ခွဲခြမ်းစိတ်ဖြာခြင်းအတွက်ဤအမှားများကိုမှတ်တမ်းတင်ရန်လိုအပ်သည်။ MySQLI :: Mysqli နှင့် MySqli :: အမှားအယွင်းများအတွက် $ အမှားအယွင်းကို မည်သို့အသုံးပြုရမည်ကိုဖော်ပြသည့်အခြေခံဥပမာတစ်ခုဖြစ်သည်။
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// ဒေတာဘေ့စ် connection parameters တွေကို configure</span></span><span>
</span><span><span class="hljs-variable">$host</span></span><span> = </span><span><span class="hljs-string">'localhost'</span></span><span>;
</span><span><span class="hljs-variable">$user</span></span><span> = </span><span><span class="hljs-string">'root'</span></span><span>;
</span><span><span class="hljs-variable">$password</span></span><span> = </span><span><span class="hljs-string">'password'</span></span><span>;
</span><span><span class="hljs-variable">$dbname</span></span><span> = </span><span><span class="hljs-string">'test_db'</span></span><span>;
</span><span><span class="hljs-comment">// ဒေတာဘေ့စ် connection တစ်ခုဖန်တီးပါ</span></span><span>
</span><span><span class="hljs-variable">$conn</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title function_ invoke__">mysqli</span></span><span>(</span><span><span class="hljs-variable">$host</span></span><span>, </span><span><span class="hljs-variable">$user</span></span><span>, </span><span><span class="hljs-variable">$password</span></span><span>, </span><span><span class="hljs-variable">$dbname</span></span><span>);
</span><span><span class="hljs-comment">// ဆက်သွယ်မှုအောင်မြင်မှုရှိမရှိစစ်ဆေးပါ</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$conn</span></span><span>->connect_error) {
</span><span><span class="hljs-comment">// ဆက်သွယ်မှုအမှားများကို log</span></span><span>
</span><span><span class="hljs-title function_ invoke__">error_log</span></span><span>(</span><span><span class="hljs-string">"Connection failed: "</span></span><span> . </span><span><span class="hljs-variable">$conn</span></span><span>->connect_error, </span><span><span class="hljs-number">3</span></span><span>, </span><span><span class="hljs-string">'errors.log'</span></span><span>);
</span><span><span class="hljs-keyword">exit</span></span><span>();
}
</span><span><span class="hljs-comment">// တစ် ဦး စုံစမ်းမှု execute</span></span><span>
</span><span><span class="hljs-variable">$sql</span></span><span> = </span><span><span class="hljs-string">"SELECT * FROM non_existent_table"</span></span><span>;
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-variable">$conn</span></span><span>-></span><span><span class="hljs-title function_ invoke__">query</span></span><span>(</span><span><span class="hljs-variable">$sql</span></span><span>);
</span><span><span class="hljs-comment">// စုံစမ်းမှုအောင်မြင်မှုရှိမရှိစစ်ဆေးပါ</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-variable">$result</span></span><span>) {
</span><span><span class="hljs-comment">// စုံစမ်းမှုပျက်ကွက်လျှင်,အမှားသတင်းအချက်အလက်နှင့်အမှားကုဒ်များကိုမှတ်တမ်းတင်ပါ</span></span><span>
</span><span><span class="hljs-title function_ invoke__">error_log</span></span><span>(</span><span><span class="hljs-string">"Error: "</span></span><span> . </span><span><span class="hljs-variable">$conn</span></span><span>->errno . </span><span><span class="hljs-string">" - "</span></span><span> . </span><span><span class="hljs-variable">$conn</span></span><span>->error . </span><span><span class="hljs-string">"\n"</span></span><span>, </span><span><span class="hljs-number">3</span></span><span>, </span><span><span class="hljs-string">'errors.log'</span></span><span>);
}
</span><span><span class="hljs-comment">// ဆက်သွယ်မှုကိုပိတ်ပါ</span></span><span>
</span><span><span class="hljs-variable">$conn</span></span><span>-></span><span><span class="hljs-title function_ invoke__">close</span></span><span>();
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
ဒီဥပမာမှာဒေတာဘေ့စ်ကိုဆက်သွယ်ဖို့ကြိုးစားပါ။ ဆက်သွယ်မှုပျက်ကွက်ပါကဆက်သွယ်မှုအမှားတစ်ခုအမှားများကို error.log ဖိုင်သို့ဝင်ရောက်သည်။ ထို့နောက်ကျွန်ုပ်တို့သည်မတည်ရှိသောစားပွဲ၌အချက်အလက်များရရန်ကြိုးစားခြင်း, အကယ်. မေးမြန်းမှုမအောင်မြင်ပါကကျွန်ုပ်တို့သည်အမှားအယွင်းကိုဖမ်းယူပြီးအမှားကုဒ်နှင့်အမှားအယွင်းများကိုအတူတကွမှတ်တမ်းတင်ပါလိမ့်မည်။
ထုတ်လုပ်မှုပတ် 0 န်းကျင်တွင်အမှားမှတ်တမ်းများကိုမှတ်တမ်းတင်ခြင်းသည်အချိန်ဇယားအချို့ကိုမှတ်တမ်းတင်ရန်လိုအပ်သည်။ ထို့ကြောင့်အမှားမှတ်တမ်းမှတ်တမ်းများကိုအမှားမှတ်တမ်းမှတ်တမ်းများတွင်ထည့်သွင်းနိုင်သည်။
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// လက်ရှိအချိန်ကိုရယူပါ</span></span><span>
</span><span><span class="hljs-variable">$date</span></span><span> = </span><span><span class="hljs-title function_ invoke__">date</span></span><span>(</span><span><span class="hljs-string">'Y-m-d H:i:s'</span></span><span>);
</span><span><span class="hljs-comment">// တစ် ဦး စုံစမ်းမှု execute并记录错误日志</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-variable">$result</span></span><span>) {
</span><span><span class="hljs-comment">// timestamp ကိုမှတ်တမ်းမှထည့်ပါ</span></span><span>
</span><span><span class="hljs-title function_ invoke__">error_log</span></span><span>(</span><span><span class="hljs-string">"[<span class="hljs-subst">$date</span></span></span><span>] Error: " . </span><span><span class="hljs-variable">$conn</span></span><span>->errno . </span><span><span class="hljs-string">" - "</span></span><span> . </span><span><span class="hljs-variable">$conn</span></span><span>->error . </span><span><span class="hljs-string">"\n"</span></span><span>, </span><span><span class="hljs-number">3</span></span><span>, </span><span><span class="hljs-string">'errors.log'</span></span><span>);
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
အမှားတစ်ခုစီအတွက်လက်ရှိအချိန်တွင်အချိန်ကိုထည့်သွင်းခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်အမှားတစ်ခုစီ၏တိကျသောအချိန်ကိုကျွန်ုပ်တို့ရှင်းရှင်းလင်းလင်းမြင်တွေ့ရပြီး developer များပိုမိုတိကျသောပြ troubl နာဖြေရှင်းခြင်းများပြုလုပ်ရန်ကူညီပေးနေသည်။
အချိန်ကြာလာသည်နှင့်အမျှအမှားမှတ်တမ်းဖိုင်များသည်အလွန်ကြီးမားလာပြီးစနစ်စွမ်းဆောင်ရည်နှင့်ထိန်းသိမ်းမှုကိုထိခိုက်နိုင်သည်။ ထို့ကြောင့်ပုံမှန်သန့်ရှင်းခြင်းနှင့်မှတ်တမ်းအမှားမှတ်တမ်းများအတွက်အလွန်အရေးကြီးသည်။ အောက်ပါနည်းလမ်းများကိုအမှားမှတ်တမ်းများစီမံခန့်ခွဲမှုကိုအကောင်းဆုံးဖြစ်စေရန်အသုံးပြုနိုင်သည်။
ပုံမှန် archive နှင့် cleanup: စီစဉ်ထားသောအလုပ်ကိုပုံမှန်ဖွင့်ရန်စီစဉ်ထားသောအလုပ်တစ်ခုကိုပုံမှန်တပ်ဆင်ပါ။
log rotation: log files များ၏အရွယ်အစားကိုအလိုအလျောက်စီမံရန် Log Rotation Tools (ဥပမာ logrotate ) ကိုသုံးပါ။
အဆင့်ဆင့် - အမှား၏ပြင်းထန်မှု၏ပြင်းထန်မှုအရ, ကွဲပြားခြားနားသောမှတ်တမ်းအဆင့်ဆင့် (ထိုကဲ့သို့သောသတင်းအချက်အလက်, သတိပေးချက်များ, အမှားအယွင်းများ) ကိုမှတ်တမ်းတင်ရန်အသုံးပြုကြသည်။
MySQLI :: $ errno နှင့် mySqli :: MySqli :: Mysqli :: Php developer များသည်ဒေတာဘေ့စ်စစ်ဆင်ရေးများတွင်အမှားအယွင်းများကိုအလွယ်တကူဖမ်းယူနိုင်သည်။ Timestamps များ, မှတ်တမ်းဖိုင်စီမံခန့်ခွဲမှုနှင့်သန့်ရှင်းရေးမဟာဗျူဟာများကိုပေါင်းစပ်ခြင်း, အမှားမှတ်တမ်းမှတ်တမ်းတင်ခြင်းနှင့်အကောင်းမြင်မှုကိုထိရောက်စွာလုပ်ဆောင်နိုင်သည်။ ဤအစီအမံများသည်ဖွံ့ဖြိုးရေးနှင့်စမ်းသပ်ခြင်းကာလအတွင်း developer များပြ problems နာများကိုအချိန်မီပြ problems နာများရှာဖွေတွေ့ရှိနိုင်ရုံသာမကထုတ်လုပ်မှုပတ် 0 န်းကျင်တွင်နောက်ပိုင်းတွင်ပြ troubl နာဖြေရှင်းရန်အတွက်အရေးကြီးသောသဲလွန်စများကိုလည်းထောက်ပံ့ပေးသည်။
ဤဆောင်းပါး၏နိဒါန်းအားဖြင့် MySQLI :: errno ကို မည်သို့အသုံးပြုရမည်ကိုသင်ပိုမိုနားလည်နိုင်မည်ဟုကျွန်ုပ်မျှော်လင့်ပါသည်။ သင်၏ Code ၏အားသာချက်များနှင့်ထိန်းသိမ်းခြင်းအတွက်အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုအတွက်အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုအတွက်အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုနှင့်သက်ဆိုင်သည်။