PHP ပရောဂျက်များရေးဆွဲသည့်အခါဒေတာဘေ့စ်လုပ်ငန်းများသည်များသောအားဖြင့်အမှားအယွင်းများအများဆုံးဖြစ်သည်။ ပြ problems နာများကိုလျင်မြန်စွာနေရာချထားရန်အတွက်အသေးစိတ်အချက်အလက်များကို debugging သတင်းအချက်အလက်သည်မရှိမဖြစ်လိုအပ်သည်။ PHP ၏ MySQLI extensions သည်အထူးသဖြင့် MySQLI :: Debug နည်းလမ်းကိုအထူးသဖြင့် MySQLI :: Debug နည်းလမ်းကိုပေးသည်။ ဤအတောအတွင်း error_log function သည် files များ, system logs များကိုရေးသားခြင်းသို့မဟုတ်အီးမေးလ်များသို့ပို့ခြင်းအတွက်အစွမ်းထက်သောကိရိယာတစ်ခုဖြစ်သည်။ ဒီနှစ်ခုကိုပေါင်းစပ်ပြီး developer များပိုမိုပြည့်စုံပြီးထိုးထွင်းသိမြင်နိုင်သောဒေတာဘေ့စ် debug log output ကိုရရှိနိုင်ပါသည်။
MySQLI :: Debug သည် MySQL database ၏နောက်ခံ debugging အချက်အလက်များကိုထုတ်ဖော်ပြောဆိုနိုင်သည့် MySQLI အတန်းရှိနည်းလမ်းတစ်ခုဖြစ်သည်။ ဤနည်းလမ်းကိုအသုံးပြုခြင်းအားဖြင့် developer များသည်ကွပ်မျက်ခံရသူများကွပ်မျက်ခံရသော SQL Queryies, connection information နှင့် MySQL server ၏ status ကိုကြည့်ရှုနိုင်သည်။ ၎င်းသည် SQL Queries ၏ကွပ်မျက်မှုများကိုဖျက်သိမ်းခြင်းအတွက်အလွန်အထောက်အကူပြုသည်။
MySQLI :: Debug ကို အသုံးပြုခြင်းသည်အလွန်ရိုးရှင်းပါသည်, သင်ကမှန်ကန်သောနေရာတွင်၎င်းကိုခေါ်ဆိုရန်လိုအပ်သည်။ ဤတွင်အသုံးပြုမှု၏ရိုးရှင်းသောဥပမာတစ်ခုဖြစ်သည်။
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$mysqli</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-string">"localhost"</span></span><span>, </span><span><span class="hljs-string">"username"</span></span><span>, </span><span><span class="hljs-string">"password"</span></span><span>, </span><span><span class="hljs-string">"database"</span></span><span>);
</span><span><span class="hljs-comment">// Debug Mode ကိုဖွင့်ပါ</span></span><span>
</span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">debug</span></span><span>(</span><span><span class="hljs-string">"d:t"</span></span><span>); </span><span><span class="hljs-comment">// 'd' debugging သတင်းအချက်အလက်ညွှန်ပြ,'t' ခြေရာခံခြင်းသတင်းအချက်အလက်ညွှန်ပြ</span></span><span>
</span><span><span class="hljs-comment">// ကရိယာတန်းဆာ SQL မေးမြန်း</span></span><span>
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">query</span></span><span>(</span><span><span class="hljs-string">"SELECT * FROM users"</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-keyword">while</span></span><span> (</span><span><span class="hljs-variable">$row</span></span><span> = </span><span><span class="hljs-variable">$result</span></span><span>-></span><span><span class="hljs-title function_ invoke__">fetch_assoc</span></span><span>()) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"User: "</span></span><span> . </span><span><span class="hljs-variable">$row</span></span><span>[</span><span><span class="hljs-string">'name'</span></span><span>] . </span><span><span class="hljs-string">"<br>"</span></span><span>;
}
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Query failed: "</span></span><span> . </span><span><span class="hljs-variable">$mysqli</span></span><span>->error;
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>ဤဥပမာတွင် ဒေါ်လာ MySQLI-> Debug (Debug) သည် debug သတင်းအချက်အလက်ထုတ်လုပ်မှုကိုရရှိစေသည်။ ဤအချက်အလက်သည် developer များက MySQL မေးမြန်းချက်အသေးစိတ်ကိုနားလည်ရန် browser (သို့) terminal သို့တိုက်ရိုက်ထုတ်လွှင့်လိမ့်မည်။
Error_log သည် PHP တွင် PHP တွင် built-in function တစ်ခုဖြစ်သည်။ ဤလုပ်ဆောင်ချက်သည်အလွန်အသုံးဝင်သည်, ၎င်းသည် developer များအမှားအချက်အလက်များကိုမှတ်တမ်းတင်ရန်နှင့် log ကိုမည်သည့်နေရာတွင်သိမ်းဆည်းရမည်ကိုအထောက်အကူပြုနိုင်သည်။
အခြေခံ အမှား error_log ကို အောက်ပါအတိုင်းအသုံးပြုသည်။
<span><span><span class="hljs-meta"><?php</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">"Database query failed: "</span></span><span> . </span><span><span class="hljs-variable">$mysqli</span></span><span>->error, </span><span><span class="hljs-number">3</span></span><span>, </span><span><span class="hljs-string">"/path/to/your/logfile.log"</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>ဤဥပမာတွင် error_log သည် အမှားမက်ဆေ့ခ်ျကိုသတ်မှတ်ထားသောမှတ်တမ်းဖိုင်သို့ဖြည့်ဆည်းပေးသည်။
MySQLI :: Debug သည် အသေးစိတ်အချက်အလက်များကို debature အချက်အလက်များကို debate debugging မှထုတ်ပြန်နိုင်သော်လည်းအထူးသဖြင့်ထုတ်လုပ်မှုပတ် 0 န်းကျင်တွင်ဤအချက်အလက်များကို browser သို့တိုက်ရိုက်ထုတ်ပေးရန်အမြဲတမ်းအကောင်းဆုံးမဟုတ်ပါ။ ထို့ကြောင့်ဤအချက်အလက်များကိုနောက်ဆက်တွဲခွဲခြမ်းစိတ်ဖြာခြင်းအတွက်သိုလှောင်မှုအတွက်ဤအချက်အလက်များကို log file သို့ Output လုပ်ရန်ပိုမိုကောင်းမွန်သောအလေ့အကျင့်ဖြစ်သည်။
MySQLI :: Debug နှင့် Error_log တို့ကို ပိုမိုပြောင်းလွယ်ပြင်လွယ် debug output ကိုရရှိရန်ပေါင်းစပ်နိုင်သည်။ ဒီမှာလက်တွေ့ကျတဲ့ဥပမာတစ်ခု
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Debug output ကို log file သို့သတ်မှတ်ပါ</span></span><span>
</span><span><span class="hljs-variable">$logFile</span></span><span> = </span><span><span class="hljs-string">'/path/to/your/logfile.log'</span></span><span>;
</span><span><span class="hljs-variable">$mysqli</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-string">"localhost"</span></span><span>, </span><span><span class="hljs-string">"username"</span></span><span>, </span><span><span class="hljs-string">"password"</span></span><span>, </span><span><span class="hljs-string">"database"</span></span><span>);
</span><span><span class="hljs-comment">// Debug Mode ကိုဖွင့်ပါ</span></span><span>
</span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">debug</span></span><span>(</span><span><span class="hljs-string">"d:t"</span></span><span>);
</span><span><span class="hljs-comment">// မှတ်တမ်းတင်ရန် debug သတင်းအချက်အလက်မှတ်တမ်းတင်ပါ</span></span><span>
</span><span><span class="hljs-title function_ invoke__">ob_start</span></span><span>(); </span><span><span class="hljs-comment">// output ကိုကြားခံဖွင့်ပါ</span></span><span>
</span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">debug</span></span><span>(</span><span><span class="hljs-string">"d:t"</span></span><span>);
</span><span><span class="hljs-variable">$debugOutput</span></span><span> = </span><span><span class="hljs-title function_ invoke__">ob_get_clean</span></span><span>();
</span><span><span class="hljs-comment">// သတ်မှတ်ထားသောမှတ်တမ်းဖိုင်သို့ output ကို debug အချက်အလက်</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-keyword">empty</span></span><span>(</span><span><span class="hljs-variable">$debugOutput</span></span><span>)) {
</span><span><span class="hljs-title function_ invoke__">error_log</span></span><span>(</span><span><span class="hljs-string">"MySQL Debug Output: "</span></span><span> . </span><span><span class="hljs-variable">$debugOutput</span></span><span>, </span><span><span class="hljs-number">3</span></span><span>, </span><span><span class="hljs-variable">$logFile</span></span><span>);
}
</span><span><span class="hljs-comment">// ကရိယာတန်းဆာ SQL မေးမြန်း</span></span><span>
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">query</span></span><span>(</span><span><span class="hljs-string">"SELECT * FROM users"</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-keyword">while</span></span><span> (</span><span><span class="hljs-variable">$row</span></span><span> = </span><span><span class="hljs-variable">$result</span></span><span>-></span><span><span class="hljs-title function_ invoke__">fetch_assoc</span></span><span>()) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"User: "</span></span><span> . </span><span><span class="hljs-variable">$row</span></span><span>[</span><span><span class="hljs-string">'name'</span></span><span>] . </span><span><span class="hljs-string">"<br>"</span></span><span>;
}
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-variable">$errorMsg</span></span><span> = </span><span><span class="hljs-string">"Query failed: "</span></span><span> . </span><span><span class="hljs-variable">$mysqli</span></span><span>->error;
</span><span><span class="hljs-comment">// စံချိန် SQL ဖိုင်မှတ်တမ်းတင်ရန်အမှားအယွင်း</span></span><span>
</span><span><span class="hljs-title function_ invoke__">error_log</span></span><span>(</span><span><span class="hljs-variable">$errorMsg</span></span><span>, </span><span><span class="hljs-number">3</span></span><span>, </span><span><span class="hljs-variable">$logFile</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$errorMsg</span></span><span>;
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>အထက်ပါကုဒ်တွင် MySQLI :: Debug မှအချက်အလက်များကိုပထမဆုံးဖြည့်စွက်ပြီး ob_start နှင့် ob_get_clean ကို အသုံးပြု. ဤအချက်အလက်များကိုဖမ်းယူပါ။ ထို့နောက် Debug output ကို error_log မှတဆင့်သတ်မှတ်ထားသော log file ထဲသို့ဝင်ရောက်သည်။ SQL query ကိုကွပ်မျက်ခံရပြီးနောက်, အကယ်. စုံစမ်းမှုပျက်ကွက်ပါကကျွန်ုပ်တို့သည်အမှားအယွင်းများကိုတူညီသောမှတ်တမ်းဖိုင်သို့လည်းမှတ်တမ်းတင်ပါလိမ့်မည်။
ထုတ်လုပ်မှုပတ် 0 န်းကျင်တွင်အလွန်အကျွံ debugging သတင်းအချက်အလက်သည်စနစ်စွမ်းဆောင်ရည်ကိုထိခိုက်စေသည့် log files များတွင်လျင်မြန်စွာကြီးမားလာနိုင်သည်။ ထို့ကြောင့်ကျွန်ုပ်တို့သည် Debug output ကိုသဘာဝပတ်ဝန်းကျင်ဆိုင်ရာအခြေအနေများနှင့်အညီပြောင်းလွယ်ပြင်လွယ်များကိုပြောင်းလဲစေနိုင်သည် (ဖွံ့ဖြိုးမှုပတ်ဝန်းကျင်နှင့်ထုတ်လုပ်မှုပတ်ဝန်းကျင်ကဲ့သို့သော) ။
ဥပမာအားဖြင့်, အသေးစိတ်အချက်အလက်များကိုဖြည့်ဆန်းရေးပတ် 0 န်းကျင်တွင် debugging အချက်အလက်များကိုဖွင့ ်. ထုတ်လုပ်မှုပတ် 0 န်းကျင်တွင်ပိတ်ပါ။
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$mysqli</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-string">"localhost"</span></span><span>, </span><span><span class="hljs-string">"username"</span></span><span>, </span><span><span class="hljs-string">"password"</span></span><span>, </span><span><span class="hljs-string">"database"</span></span><span>);
</span><span><span class="hljs-comment">// 开发环境下Debug Mode ကိုဖွင့်ပါ</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">getenv</span></span><span>(</span><span><span class="hljs-string">'ENVIRONMENT'</span></span><span>) === </span><span><span class="hljs-string">'development'</span></span><span>) {
</span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">debug</span></span><span>(</span><span><span class="hljs-string">"d:t"</span></span><span>);
}
</span><span><span class="hljs-comment">// ကရိယာတန်းဆာ SQL မေးမြန်း</span></span><span>
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">query</span></span><span>(</span><span><span class="hljs-string">"SELECT * FROM users"</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-keyword">while</span></span><span> (</span><span><span class="hljs-variable">$row</span></span><span> = </span><span><span class="hljs-variable">$result</span></span><span>-></span><span><span class="hljs-title function_ invoke__">fetch_assoc</span></span><span>()) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"User: "</span></span><span> . </span><span><span class="hljs-variable">$row</span></span><span>[</span><span><span class="hljs-string">'name'</span></span><span>] . </span><span><span class="hljs-string">"<br>"</span></span><span>;
}
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-variable">$errorMsg</span></span><span> = </span><span><span class="hljs-string">"Query failed: "</span></span><span> . </span><span><span class="hljs-variable">$mysqli</span></span><span>->error;
</span><span><span class="hljs-title function_ invoke__">error_log</span></span><span>(</span><span><span class="hljs-variable">$errorMsg</span></span><span>, </span><span><span class="hljs-number">3</span></span><span>, </span><span><span class="hljs-string">"/path/to/your/logfile.log"</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$errorMsg</span></span><span>;
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>MySQLI :: debug နှင့် error_log များကို ပေါင်းစပ်ခြင်းအားဖြင့် developer များသည် MySQL ဒေတာဘေ့စ်၏သတင်းအချက်အလက်များကိုဖြည့်ဆည်းခြင်းနှင့်ကူးယူခြင်းနှင့်နောက်ဆက်တွဲခွဲခြမ်းစိတ်ဖြာခြင်းနှင့်ပြ problem နာရှိသည့်နေရာများရှိဖိုင်များကိုမှတ်တမ်းတင်ရန်နှင့်မှတ်တမ်းတင်နိုင်သည်။ ဖွံ့ဖြိုးရေးပတ် 0 န်းကျင်တွင်သတင်းအချက်အလက်များကို debugging projecters များသည်ပြ problems နာများကိုဖော်ထုတ်ရန်ကူညီနိုင်ပြီးထုတ်လုပ်မှုပတ်ဝန်းကျင်တွင်အလားအလာရှိသောပြ problems နာများကိုဖြေရှင်းရန်နှင့်ဖြေရှင်းခြင်းများပြုလုပ်နေစဉ်စနစ်တည်ငြိမ်သောသစ်ထုတ်လုပ်မှုကိုသေချာစေနိုင်သည်။
သက်ဆိုင်သောတက်(ဂ်)များ:
mysqli