လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> အသေးစိတ်အချက်အလက်များကို MySQLI :: Debug နှင့် Error_log တို့နှင့်ပေါင်းစပ်ညှိနှိုင်းနည်း။

အသေးစိတ်အချက်အလက်များကို MySQLI :: Debug နှင့် Error_log တို့နှင့်ပေါင်းစပ်ညှိနှိုင်းနည်း။

gitbox 2025-09-15

အသေးစိတ်အချက်အလက်များကို MySQLI :: Debug နှင့် Error_log တို့ နှင့်ပေါင်းစပ်ညှိနှိုင်းနည်း။

PHP ပရောဂျက်များရေးဆွဲသည့်အခါဒေတာဘေ့စ်လုပ်ငန်းများသည်များသောအားဖြင့်အမှားအယွင်းများအများဆုံးဖြစ်သည်။ ပြ problems နာများကိုလျင်မြန်စွာနေရာချထားရန်အတွက်အသေးစိတ်အချက်အလက်များကို debugging သတင်းအချက်အလက်သည်မရှိမဖြစ်လိုအပ်သည်။ PHP ၏ MySQLI extensions သည်အထူးသဖြင့် MySQLI :: Debug နည်းလမ်းကိုအထူးသဖြင့် MySQLI :: Debug နည်းလမ်းကိုပေးသည်။ ဤအတောအတွင်း error_log function သည် files များ, system logs များကိုရေးသားခြင်းသို့မဟုတ်အီးမေးလ်များသို့ပို့ခြင်းအတွက်အစွမ်းထက်သောကိရိယာတစ်ခုဖြစ်သည်။ ဒီနှစ်ခုကိုပေါင်းစပ်ပြီး developer များပိုမိုပြည့်စုံပြီးထိုးထွင်းသိမြင်နိုင်သောဒေတာဘေ့စ် debug log output ကိုရရှိနိုင်ပါသည်။

1 ။ MySQLI :: Debug ကို မိတ်ဆက်နိဒါန်း

MySQLI :: Debug သည် MySQL database ၏နောက်ခံ debugging အချက်အလက်များကိုထုတ်ဖော်ပြောဆိုနိုင်သည့် MySQLI အတန်းရှိနည်းလမ်းတစ်ခုဖြစ်သည်။ ဤနည်းလမ်းကိုအသုံးပြုခြင်းအားဖြင့် developer များသည်ကွပ်မျက်ခံရသူများကွပ်မျက်ခံရသော SQL Queryies, connection information နှင့် MySQL server ၏ status ကိုကြည့်ရှုနိုင်သည်။ ၎င်းသည် SQL Queries ၏ကွပ်မျက်မှုများကိုဖျက်သိမ်းခြင်းအတွက်အလွန်အထောက်အကူပြုသည်။

MySQLI :: Debug ကို အသုံးပြုခြင်းသည်အလွန်ရိုးရှင်းပါသည်, သင်ကမှန်ကန်သောနေရာတွင်၎င်းကိုခေါ်ဆိုရန်လိုအပ်သည်။ ဤတွင်အသုံးပြုမှု၏ရိုးရှင်းသောဥပမာတစ်ခုဖြစ်သည်။

 <span><span><span class="hljs-meta">&lt;?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>-&gt;</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>-&gt;</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>-&gt;</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">"&lt;br&gt;"</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>-&gt;error;
}
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

ဤဥပမာတွင် ဒေါ်လာ MySQLI-> Debug (Debug) သည် debug သတင်းအချက်အလက်ထုတ်လုပ်မှုကိုရရှိစေသည်။ ဤအချက်အလက်သည် developer များက MySQL မေးမြန်းချက်အသေးစိတ်ကိုနားလည်ရန် browser (သို့) terminal သို့တိုက်ရိုက်ထုတ်လွှင့်လိမ့်မည်။

2 ။ error_log မှမိတ်ဆက်

Error_log သည် PHP တွင် PHP တွင် built-in function တစ်ခုဖြစ်သည်။ ဤလုပ်ဆောင်ချက်သည်အလွန်အသုံးဝင်သည်, ၎င်းသည် developer များအမှားအချက်အလက်များကိုမှတ်တမ်းတင်ရန်နှင့် log ကိုမည်သည့်နေရာတွင်သိမ်းဆည်းရမည်ကိုအထောက်အကူပြုနိုင်သည်။

အခြေခံ အမှား error_log ကို အောက်ပါအတိုင်းအသုံးပြုသည်။

 <span><span><span class="hljs-meta">&lt;?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>-&gt;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">?&gt;</span></span><span>
</span></span>

ဤဥပမာတွင် error_log သည် အမှားမက်ဆေ့ခ်ျကိုသတ်မှတ်ထားသောမှတ်တမ်းဖိုင်သို့ဖြည့်ဆည်းပေးသည်။

3 ။ MySQLI :: debug နှင့် error_log ကို သုံးပါ

MySQLI :: Debug သည် အသေးစိတ်အချက်အလက်များကို debature အချက်အလက်များကို debate debugging မှထုတ်ပြန်နိုင်သော်လည်းအထူးသဖြင့်ထုတ်လုပ်မှုပတ် 0 န်းကျင်တွင်ဤအချက်အလက်များကို browser သို့တိုက်ရိုက်ထုတ်ပေးရန်အမြဲတမ်းအကောင်းဆုံးမဟုတ်ပါ။ ထို့ကြောင့်ဤအချက်အလက်များကိုနောက်ဆက်တွဲခွဲခြမ်းစိတ်ဖြာခြင်းအတွက်သိုလှောင်မှုအတွက်ဤအချက်အလက်များကို log file သို့ Output လုပ်ရန်ပိုမိုကောင်းမွန်သောအလေ့အကျင့်ဖြစ်သည်။

MySQLI :: Debug နှင့် Error_log တို့ကို ပိုမိုပြောင်းလွယ်ပြင်လွယ် debug output ကိုရရှိရန်ပေါင်းစပ်နိုင်သည်။ ဒီမှာလက်တွေ့ကျတဲ့ဥပမာတစ်ခု

 <span><span><span class="hljs-meta">&lt;?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>-&gt;</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>-&gt;</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>-&gt;</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>-&gt;</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">"&lt;br&gt;"</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>-&gt;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">?&gt;</span></span><span>
</span></span>

အထက်ပါကုဒ်တွင် MySQLI :: Debug မှအချက်အလက်များကိုပထမဆုံးဖြည့်စွက်ပြီး ob_start နှင့် ob_get_clean ကို အသုံးပြု. ဤအချက်အလက်များကိုဖမ်းယူပါ။ ထို့နောက် Debug output ကို error_log မှတဆင့်သတ်မှတ်ထားသော log file ထဲသို့ဝင်ရောက်သည်။ SQL query ကိုကွပ်မျက်ခံရပြီးနောက်, အကယ်. စုံစမ်းမှုပျက်ကွက်ပါကကျွန်ုပ်တို့သည်အမှားအယွင်းများကိုတူညီသောမှတ်တမ်းဖိုင်သို့လည်းမှတ်တမ်းတင်ပါလိမ့်မည်။

4 ။ သစ်ထုတ်လုပ်မှုကိုအကောင်းမြင်ပါ

ထုတ်လုပ်မှုပတ် 0 န်းကျင်တွင်အလွန်အကျွံ debugging သတင်းအချက်အလက်သည်စနစ်စွမ်းဆောင်ရည်ကိုထိခိုက်စေသည့် log files များတွင်လျင်မြန်စွာကြီးမားလာနိုင်သည်။ ထို့ကြောင့်ကျွန်ုပ်တို့သည် Debug output ကိုသဘာဝပတ်ဝန်းကျင်ဆိုင်ရာအခြေအနေများနှင့်အညီပြောင်းလွယ်ပြင်လွယ်များကိုပြောင်းလဲစေနိုင်သည် (ဖွံ့ဖြိုးမှုပတ်ဝန်းကျင်နှင့်ထုတ်လုပ်မှုပတ်ဝန်းကျင်ကဲ့သို့သော) ။

ဥပမာအားဖြင့်, အသေးစိတ်အချက်အလက်များကိုဖြည့်ဆန်းရေးပတ် 0 န်းကျင်တွင် debugging အချက်အလက်များကိုဖွင့ ်. ထုတ်လုပ်မှုပတ် 0 န်းကျင်တွင်ပိတ်ပါ။

 <span><span><span class="hljs-meta">&lt;?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>-&gt;</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>-&gt;</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>-&gt;</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">"&lt;br&gt;"</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>-&gt;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">?&gt;</span></span><span>
</span></span>

5 ။ အကျဉ်းချုပ်

MySQLI :: debug နှင့် error_log များကို ပေါင်းစပ်ခြင်းအားဖြင့် developer များသည် MySQL ဒေတာဘေ့စ်၏သတင်းအချက်အလက်များကိုဖြည့်ဆည်းခြင်းနှင့်ကူးယူခြင်းနှင့်နောက်ဆက်တွဲခွဲခြမ်းစိတ်ဖြာခြင်းနှင့်ပြ problem နာရှိသည့်နေရာများရှိဖိုင်များကိုမှတ်တမ်းတင်ရန်နှင့်မှတ်တမ်းတင်နိုင်သည်။ ဖွံ့ဖြိုးရေးပတ် 0 န်းကျင်တွင်သတင်းအချက်အလက်များကို debugging projecters များသည်ပြ problems နာများကိုဖော်ထုတ်ရန်ကူညီနိုင်ပြီးထုတ်လုပ်မှုပတ်ဝန်းကျင်တွင်အလားအလာရှိသောပြ problems နာများကိုဖြေရှင်းရန်နှင့်ဖြေရှင်းခြင်းများပြုလုပ်နေစဉ်စနစ်တည်ငြိမ်သောသစ်ထုတ်လုပ်မှုကိုသေချာစေနိုင်သည်။

  • သက်ဆိုင်သောတက်(ဂ်)များ:

    mysqli