debugging and logging များသည် PHP application များဖွံ့ဖြိုးတိုးတက်ရေးအတွက်အလွန်အရေးကြီးသောအစိတ်အပိုင်းဖြစ်သည်။ အထူးသဖြင့်ဒေတာဘေ့စ်များကိုအသုံးပြုခြင်း၏မြင်ကွင်းတွင်, MySQLI :: Debug သည် အသေးစိတ်အချက်အလက်များကိုမှတ်တမ်းတင်ခြင်းအားဖြင့်အသေးစိတ်အချက်အလက်များကိုမှတ်တမ်းတင်ခြင်းအားဖြင့်အသေးစိတ်အချက်အလက်များကိုမှတ်တမ်းတင်ရန်ကူညီနိုင်သည့်အလွန်အသုံးဝင်သောကိရိယာတစ်ခုဖြစ်သည်။
ဤဆောင်းပါးတွင် MySQLI :: Debug ကို မည်သို့အသုံးပြုရမည်ကိုဆွေးနွေးပါမည်။
MySQLI :: Debug သည် debug mode ကိုဖွင့်ရန်နှင့်ဒေတာစီဆက်သွယ်မှုအားလုံးအတွက်သတင်းအချက်အလက်များကိုမှတ်တမ်းတင်ရန်အသုံးပြုနိုင်သည့် MySQLI extension တွင် mySQLI extension တွင်နည်းလမ်းဖြစ်သည်။ MySQL ဒေတာဘေ့စ်သို့ပို့သောမေးမြန်းချက်အားလုံးကိုရှာဖွေရန်သင့်အားခွင့်ပြုသည်, စုံစမ်းမှုနှင့်ဆက်စပ်သောအမှားအချက်အလက်များ၏ကွပ်မျက်မှုအခြေအနေကိုရယူပြီးဒေတာဘေ့စ်ဆက်သွယ်မှုလုပ်ငန်းစဉ်အတွင်းပြ problems နာများကိုပင်ရိုက်ကူးနိုင်သည်။
$mysqli = new mysqli("localhost", "username", "password", "database");
// Debug Mode ကို Enable လုပ်ပါ
$mysqli->debug("d:t");
// ကရိယာတန်းဆာ SQL မေးမြန်း
$result = $mysqli->query("SELECT * FROM users");
// Debug Mode ကိုပိတ်ပါ
$mysqli->debug("t");
MySQLI :: Debug သည် အလွန်အသေးစိတ် debugging သတင်းအချက်အလက်များကိုထောက်ပံ့ပေးသော်လည်းဖွံ့ဖြိုးရေးနှင့်ထုတ်လုပ်မှုပတ် 0 န်းကျင်များတွင် debugging mode ကိုအမြဲတမ်းဆက်ထိန်းထားနိုင်ခြင်းမရှိပါ။
ကွဲပြားခြားနားသောပတ်ဝန်းကျင်နှင့်အညီ debugging function ကို enable ဖို့ရှိမရှိထိန်းချုပ်နိုင်ပါတယ်။ ဖွံ့ဖြိုးရေးပတ် 0 န်းကျင်တွင် debugging ကိုပြုလုပ်နိုင်သည်, ထုတ်လုပ်မှုပတ်ဝန်းကျင်တွင်မှတ်တမ်းများကိုထုတ်လုပ်ခြင်းကိုရှောင်ရှားရန် Debugging ကိုပိတ်ထားသင့်သည်။
$mysqli = new mysqli("localhost", "username", "password", "database");
// လက်ရှိပတ်ဝန်းကျင်သည်ဖွံ့ဖြိုးရေးပတ်ဝန်းကျင်ဖြစ်သည်ကိုဆုံးဖြတ်ပါ
if ($_SERVER['APP_ENV'] === 'development') {
$mysqli->debug("d:t"); // Debug Mode ကိုဖွင့်ပါ
} else {
$mysqli->debug("t"); // Debug Mode ကိုပိတ်ပါ
}
အလွန်အကျွံ log files များကိုရှောင်ရှားရန်ကျွန်ုပ်တို့သည် log ၏အရွယ်အစားကိုကန့်သတ်ရန်နည်းဗျူဟာများကိုပေါင်းစပ်ရန်နည်းဗျူဟာများကိုပေါင်းစပ်နိုင်သည်။
Log form ၏အရွယ်အစားကို အခြေခံ. မှတ်တမ်းများကို ဖြတ်. မှတ်တမ်းများကိုဖြတ်နိုင်သည်။
$logFile = __DIR__ . '/logs/mysql_debug_' . date('Y-m-d') . '.log';
$mysqli = new mysqli("localhost", "username", "password", "database");
// debugging and debug သတင်းအချက်အလက်ကိုသတ်မှတ်ထားသောမှတ်တမ်းဖိုင်သို့ Enable လုပ်ပါ
$mysqli->debug("d:t:" . $logFile);
// ကရိယာတန်းဆာ SQL မေးမြန်း
$result = $mysqli->query("SELECT * FROM users");
ဤနည်းအားဖြင့်နေ့စဉ်မှတ်တမ်းဖိုင်အသစ်ကိုနေ့တိုင်းထုတ်လုပ်လိမ့်မည်။ ဖိုင်အမည်တွင်လက်ရှိ log file size ကိုရှောင်ရှားရန်လက်ရှိရက်စွဲပါလိမ့်မည်။
log file size by log လုပ်လိုပါကဖိုင်အရွယ်အစားကိုရှာဖွေရန်နှင့်ဖြတ်ရန်ဖိုင်လည်ပတ်မှု function ကိုသုံးနိုင်သည်။ ဤတွင်ရိုးရှင်းသောဥပမာတစ်ခုဖြစ်သည်။
$logFile = __DIR__ . '/logs/mysql_debug.log';
// မှတ်တမ်းဖိုင်အရွယ်အစားကိုစစ်ဆေးပါ
if (filesize($logFile) > 10 * 1024 * 1024) { // ဖိုင်အရွယ်အစားကျော်လွန်လျှင် 10MB
rename($logFile, __DIR__ . '/logs/mysql_debug_' . time() . '.log'); // Old Nisshi အမည်ပြောင်း
}
$mysqli = new mysqli("localhost", "username", "password", "database");
// ဖိုင်များကိုမှတ်တမ်းတင်ရန် debug သတင်းအချက်အလက်ကို debugging နှင့်ရေးရန် Enable လုပ်ပါ
$mysqli->debug("d:t:" . $logFile);
// ကရိယာတန်းဆာ SQL မေးမြန်း
$result = $mysqli->query("SELECT * FROM users");
Debugging လုပ်နေစဉ်အတွင်းတွင် log file တွင်ဒေတာဘေ့စ်မေးမြန်းချက်များအတွက် URLs သို့မဟုတ်အခြားအထိခိုက်မခံသောသတင်းအချက်အလက်များပါဝင်နိုင်သည်။ ဤကိစ္စတွင်အထိခိုက်မခံသောအချက်အလက်များကိုပေါက်ကြားခြင်းမှကာကွယ်ရန် Code မှတဆင့်ဒိုမိန်းအမည်အပိုင်းကိုအစားထိုးနိုင်သည်။
ဥပမာ, မှတ်တမ်းတွင်ဤကဲ့သို့သော url ပါရှိသည်ဆိုပါစို့။
$logMessage = "Request to http://example.com/api/data at " . date('Y-m-d H:i:s');
Domain Name အပိုင်းကို M66.NET နှင့်အတူအောက်ပါအတိုင်းအစားထိုးနိုင်သည်။
$logMessage = "Request to http://m66.net/api/data at " . date('Y-m-d H:i:s');
$logFile = __DIR__ . '/logs/mysql_debug.log';
$mysqli = new mysqli("localhost", "username", "password", "database");
// Debug Mode ကို Enable လုပ်ပါ
$mysqli->debug("d:t:" . $logFile);
// ကရိယာတန်းဆာ SQL မေးမြန်း
$query = "SELECT * FROM users WHERE email = 'user@example.com'";
$query = str_replace("example.com", "m66.net", $query); // ပြန်လည်နေရာချ URL
$result = $mysqli->query($query);
ဤနည်းအားဖြင့်ကျွန်ုပ်တို့သည်အမှန်တကယ်အထိခိုက်မခံသော URL domain name ကို log တွင်မထိတွေ့နိုင်အောင်သေချာစေနိုင်သည်။
MySQLI :: Debug သည်အစွမ်းထက် debugging tool တစ်ခုဖြစ်သည်။ သို့သော်မထိန်းချုပ်နိုင်ပါကစနစ်စွမ်းဆောင်ရည်ကိုအကျိုးသက်ရောက်စေရန်အလွန်အကျွံ log files များကိုဖြစ်စေနိုင်သည်။ code တွင် debugging function များကို bugging function များကို debugging function များကို enable လုပ်ခြင်းသို့မဟုတ်ပိတ်ခြင်းအားဖြင့်မှတ်တမ်းများကိုဖြတ်တောက်ခြင်းနှင့်မှတ်တမ်းများတွင်အထိခိုက်မခံသောအချက်အလက်များကိုပြုပြင်ခြင်းဖြင့်ကျွန်ုပ်တို့သည်အရင်းအမြစ်များကိုအပြီးသတ်လုပ်ဆောင်မှုများနှင့်မှတ်တမ်းတင်ခြင်းများကိုစတင်စီမံနိုင်ပါသည်။