PHP ပရိုဂရမ်တွင် MySQLI extension သည် MySQL database များနှင့်အပြန်အလှန်ဆက်သွယ်ခြင်းအတွက်ဘုံနည်းလမ်းဖြစ်သည်။ SQL Query များကို Debuggugh လုပ်ရန် MySQLI သည် အသေးစိတ်အချက်အလက်များကိုဖော်ပြနိုင်သည့် debug နည်းလမ်းကိုထောက်ပံ့ပေးသည်။ သို့သော်အချို့သောကိစ္စရပ်များတွင် MySQLI :: Debug ကို ဖွင့်သောအခါ 0 က်ဘ်ဆိုက်၏စွမ်းဆောင်ရည်သည်သိသိသာသာကျဆင်းလာနိုင်သည်။ ဒီတော့ဘာကြောင့်ဒီလိုဖြစ်ရတာလဲ။ ဤဆောင်းပါးသည် MySQLI :: Debug သို့လှည့်ပြီးနောက်ဝက်ဘ်ဆိုက်နှေးကွေးသောအကြောင်းရင်းများကိုအသေးစိတ်လေ့လာလိမ့်မည်။
MySQLI :: Debug သည် MySQLI debugging mode ကိုဖွင့်ရန်အသုံးပြုသောနည်းလမ်းဖြစ်သည်။ မေးမြန်းချက်များကိုအကောင်အထည်ဖော်သည့်အခါဒေတာဗေ့ဆက်သွယ်မှုများ, အချက်အလက်များကို debing လုပ်ခြင်းဖြင့် developer များကဒေတာဘေ့စ်လုပ်ငန်းများတွင်အလားအလာရှိသောပြ problems နာများကိုအလွယ်တကူရှာဖွေတွေ့ရှိနိုင်သည်။
mysqli::debug("trace");
အထက်ပါနည်းလမ်းကိုခေါ်ဆိုပြီးနောက်ဒေတာဘေ့စ်စစ်ဆင်ရေးမှတ်တမ်းများအားလုံးသည်သတ်မှတ်ထားသောတည်နေရာ (များသောအားဖြင့် PHP အမှားမှတ်တမ်း) သို့ output လုပ်လိမ့်မည်။ သို့သော်ဤအသေးစိတ်မှတ်တမ်းရလဒ်များသည် 0 က်ဘ်ဆိုက်တွင်စွမ်းဆောင်ရည်ပြ issues နာများကိုဖြစ်ပေါ်စေနိုင်သည့်ရလဒ်များဖြစ်သည်။
မှတ်တမ်း output အတွက်အပိုဆောင်း overhead
MySQLI :: Debug ကို ဖွင့်သောအခါ MySQLI extensions သည်စုံစမ်းမှုမှတ်တမ်းတစ်ခုစီနှင့်၎င်း၏ကွပ်မျက်မှုအချိန်နှင့်ဤအချက်အလက်များကို log file သို့ထုတ်ပေးသည်။ တောင်းဆိုမှုတစ်ခုချင်းစီအတွက် MySQLI သည်မေးမြန်းမှုဆိုင်ရာအချက်အလက်များ, Excription status and status, error infactions etc ကိုဖမ်းယူရန်လိုအပ်သည်။ အထူးသဖြင့်မေးမြန်းချက်များစွာကိုအပိုဆောင်း opereads သည်အလွန်သိသာထင်ရှားလာလိမ့်မည်။
နမူနာကုဒ်:
mysqli::debug("trace");
$connection = new mysqli('m66.net', 'user', 'password', 'database');
$result = $connection->query("SELECT * FROM large_table");
စုံစမ်းမှုတစ်ခုပြီးသွားတိုင်း MySQLI :: Debug Records သည်အချက်အလက်များကို debugging debugging လုပ်ပြီး log file သို့ဖော်ပြထားသည်။ အထူးသဖြင့်ကြိမ်နှုန်းတောင်းဆိုသည့်ဆိုဒ်များအတွက်အထူးသဖြင့်သိသာထင်ရှားသည့်တုံ့ပြန်မှုအချိန်ကိုတိုးပွားစေနိုင်သည်။
ဒေတာဘေ့စ်ဆက်သွယ်မှုများနှင့်မေးမြန်းချက်များ၏မကြာခဏ debugging
Debug Mode ကိုဖွင့်ခြင်းဆိုသည်မှာဒေတာဘေ့စ်ချိတ်ဆက်သည့်အခါတိုင်းသက်ဆိုင်ရာသတင်းအချက်အလက်များကိုမှတ်တမ်းတင်ထားခြင်းသို့မဟုတ်စုံစမ်းမှုကွပ်မျက်ခံရတိုင်းမှတ်တမ်းတင်လိမ့်မည်ဟုဆိုလိုသည်။ သင်အသွားအလာ 0 က်ဘ်ဆိုက်များ, ဒေတာဘေ့စ်ဆက်သွယ်မှုများနှင့်စုံစမ်းမှုစစ်ဆင်ရေးများကိုသင်လည်ပတ်သောအခါ, SQL query တစ်ခုကိုပြုလုပ်သောအခါတိုင်း MySQLI extension သည် SQL operate ကိုကိုယ်တိုင်ပြုလုပ်နိုင်ရုံသာမကနောက်ထပ်နှောင့်နှေးမှုထပ်တိုးလာသည့် log file သို့ဤအချက်အလက်များကိုလည်းပြုလုပ်သည်။
သတင်းအချက်အလက် debugging သတင်းအချက်အလက်ဒေတာဘေ့စအပေါ်ဝန်ထုပ်ဝန်ပိုးတိုးမြှင့်
MySQLI :: Debug သည် debug အချက်အလက်ကိုသာ Debug သတင်းအချက်အလက်များကိုသွယ်ဝိုက်။ သွယ်ဝိုက်။ , ဥပမာ Debug Log သည်အလွန်ကြီးမားသောအခါ၎င်းသည်ဒေတာဘေ့စ်၏ပုံမှန်မေးမြန်းမှုတုံ့ပြန်မှုကိုထိခိုက်စေနိုင်သည်။ ၎င်းသည်ဒေတာဘေ့စ်၏စွမ်းဆောင်ရည်ကိုအထူးသဖြင့်ဒေတာဘေ့စ်ဝန်သည်မြင့်တက်လာသောအခါသတင်းအချက်အလက်များပြုပြင်ခြင်းနှင့်သိုလှောင်ခြင်းများကို debing လုပ်ခြင်းနှင့်သိုလှောင်ခြင်းများပြုလုပ်ရန်ဖိအားပေးမှုလည်းဖြစ်သည်။
Debugging သတင်းအချက်အလက် disk space ကိုတက်ပါလိမ့်မယ်
Debugging ကိုဖွင့်ထားပြီးတဲ့နောက်အထူးသဖြင့် SQL Query တွေကိုမကြာခဏကွပ်မျက်ခံရတဲ့အခါမှာ log file ရဲ့အရွယ်အစားကိုတဖြည်းဖြည်းတိုးလာလိမ့်မယ်။ ကြီးမားသောမှတ်တမ်းဖိုင်များသည်ဆာဗာ disk နေရာကိုသိမ်းပိုက်ရုံသာမက log ဖတ်ခြင်းနှင့်ရေးသားခြင်းကိုတိုးချဲ့ရန်အချိန်တိုးချဲ့နိုင်သည်။ disk နေရာမလုံလောက်ပါကအခြားစနစ်စွမ်းဆောင်ရည်ပြ problems နာများကိုပင် ဦး ဆောင်လမ်းပြနိုင်လိမ့်မည်။
ပိတ်ဆို့ခြင်းနှင့်ထပ်တူပြုခြင်းပြ issues နာများကို
အချို့သော debug အချက်အလက်များကိုမှတ်တမ်းဖိုင်ထဲသို့ထပ်တူထပ်မျှမှတ်တမ်းတင်ထားသည်။ ဆိုလိုသည်မှာ debug အချက်အလက်ကိုမှတ်တမ်းတင်သောအခါပရိုဂရမ်ကိုပိတ်ဆို့ခြင်းဖြစ်နိုင်သည်။ ၎င်းသည်များသောအားဖြင့်အလွန်သေးငယ်သောအောင်းနေချိန်မှာအလွန်သေးငယ်သောအောင်းနေချိန်တွင်မြင့်မားသောတစ်ပြိုင်နက်တည်းအနေဖြင့်ဤ latency စုဆောင်းခြင်းနှင့်သိသိသာသာစွမ်းဆောင်ရည်ပျက်စီးမှုကိုဖြစ်ပေါ်စေသည်။
ဖွံ့ဖြိုးရေးပတ် 0 န်းကျင်တွင်သာ debugging ကိုဖွင့်ပါ
အကောင်းဆုံးလုပ်ရမည့်အကောင်းဆုံးအရာမှာ MySQLI :: Debug ကို Debug ပတ် 0 န်းကျင်တွင်ဖော်ပြရန်နှင့်ထုတ်လုပ်မှုပတ် 0 န်းကျင်တွင်ပိတ်ထားရန်ဖြစ်သည်။ Debug Mode ကို Enable လုပ်မသင့်ဆုံးဖြတ်ရန် PHP ၏ပတ်ဝန်းကျင် variable များကိုစစ်ဆေးနိုင်သည်။
နမူနာကုဒ်:
if ($_SERVER['SERVER_NAME'] === 'm66.net') {
mysqli::debug("trace");
}
ဤနည်းအားဖြင့်သတင်းအချက်အလက်များကို debugging ထုတ်လုပ်မှုပတ် 0 န်းကျင်တွင်ထုတ်လုပ်မှုမရှိပါ။
အခြား debugging tools တွေကိုသုံးပါ
MySQLI :: Debug အပြင် Xdebug သို့မဟုတ်ဒေတာဘေ့စ ် စုံစမ်းရေးခွဲခြမ်းစိတ်ဖြာမှုဆိုင်ရာခွဲခြမ်းစိတ်ဖြာမှုကိရိယာများကဲ့သို့သောအခြားစွမ်းဆောင်ရည်စောင့်ကြည့်လေ့လာရေးကိရိယာများကိုသုံးနိုင်သည်။ ဤကိရိယာများသည်စွမ်းဆောင်ရည်ကိုသိသိသာသာအကျိုးသက်ရောက်ခြင်းမရှိဘဲ debug အချက်အလက်ကိုရယူရန်ကူညီနိုင်သည်။
log log ဖိုင်အရွယ်အစားကန့်သတ်ပါ
Debug မှတ်တမ်းများကိုသင်သုံးရန်လိုပါက၎င်းတို့ကိုအလွန်ကြီးလွန်းခြင်း, Log_Erues_Max_Len ada set up ကို PHP အတွက် PHP အတွက် PHP အတွက် PHP အတွက် PHP အတွက် php အတွက်ပြင်ဆင်နိုင်သည်သို့မဟုတ် log files များကိုစီမံခန့်ခွဲရန် Log Management Tool ကိုသုံးနိုင်သည်။
စုံစမ်းမှုစွမ်းဆောင်ရည်ကိုပိုကောင်းအောင်လုပ်ပါ
နောက်ဆုံးအနေဖြင့်ဒေတာဘေ့စ်ကိုမိမိတို့ကိုယ်ကိုလေ့လာရန်အလွန်အရေးကြီးသည်။ မလိုအပ်သောမေးမြန်းချက်များကိုလျှော့ချခြင်းဖြင့် query ထုတ်ပြန်ချက်များကိုလျှော့ချခြင်း, ညွှန်းကိန်းများနှင့်အခြားနည်းလမ်းများကိုအသုံးပြုခြင်း, ဒေတာဘေ့စ်တွင်ဝန်ထုပ်ဝန်ပိုးကိုလျှော့ချနိုင်သည်။
MySQLI :: Debug သည် အထူးသဖြင့်တစ်ပြိုင်နက်တည်းအသုံးပြုခွင့်သို့မဟုတ်မကြာခဏ deburrent သို့မဟုတ်မကြာခဏဒေတာဘေ့စ်စစ်ဆင်ရေးများပြုလုပ်သည့်အခါဝက်ဘ်ဆိုက်စွမ်းဆောင်ရည်အပေါ်သက်ရောက်မှုရှိသည်။ Debug သတင်းအချက်အလက်မှတ်တမ်းတင်ခြင်းနှင့်ထုတ်လုပ်ခြင်းသည်တုန့်ပြန်မှုအချိန်ကိုအကျိုးသက်ရောက်စေမည့်အပိုတွက်ချက်မှုနှင့် i / o စစ်ဆင်ရေး overhead ကိုထပ်ထည့်ပါလိမ့်မည်။ ထို့ကြောင့် developer များသည် debug mode ကိုထုတ်လုပ်မှုပတ် 0 န်းကျင်တွင်ဖွင့်ရန်နှင့်ဖျော်ဖြေရေးဆိုင်ရာခွဲခြမ်းစိတ်ဖြာခြင်းနှင့်အမှားအယွင်းများရရှိရန်အခြားကိရိယာများကိုအသုံးပြုရန်အကြံပြုသည်။ ၎င်းသည် 0 ဘ်ဆိုဒ်၏ပုံမှန်လည်ပတ်မှုကိုသေချာစေရုံသာမကမလိုအပ်သောစွမ်းဆောင်ရည်ဆုံးရှုံးမှုများကိုလည်းရှောင်ရှားနိုင်သည်။