PHP Development တွင် MySQLI :: Debug (Debug) သည်လူသိများသော်လည်းအလွန်အသုံးဝင်သောလုပ်ဆောင်ချက်ဖြစ်သည်။ အထူးသဖြင့်ရှုပ်ထွေးသောဒေတာဘေ့စ်ဆက်သွယ်မှုများသို့မဟုတ်မေးမြန်းမှုပြ problems နာများကိုကိုင်တွယ်ဖြေရှင်းသည့်အခါ MySQLI extensions ၏အတွင်းပိုင်းကွပ်မျက်ခြင်းကိုဖျက်သိမ်းရန်၎င်းကိုအသုံးပြုနိုင်သည်။
ဤဆောင်းပါးသည် MySQLI :: Debuggage ကို Enable လုပ်ရမည်ကိုရှင်းပြပြီး debugging စွမ်းဆောင်ရည်ကိုတိုးတက်စေရန်အတွက် debugger သို့မဟုတ် virtual machine environ ိုင်ရှိသည်။
MySQLI :: Debug () Debug () PHP MySQLI extension မှပေးထားသော debugging tool တစ်ခုဖြစ်သည်။ ၎င်း၏ function သည် MySQLI ၏ debugging အချက်အလက်များကိုသတ်မှတ်ထားသောဖိုင်သို့ထုတ်ယူခြင်းဖြစ်သည်။ ၎င်းသည်ပုံမှန် output သို့မဟုတ် browser သို့ output မလုပ်သော်လည်းဆာဗာပေါ်ရှိဖိုင်များကိုမှတ်တမ်းတင်သည်။
ခေါ်ဆိုမှုနည်းလမ်းသည်အလွန်ရိုးရှင်းပါသည်။
mysqli::debug("d:t:o,/tmp/client.trace");
Parameter သည် "D: O, / TMP / Clire" ၏အဓိပ္ပာယ်ကိုဆိုလိုသည်မှာ -
D : Debug သတင်းအချက်အလက်;
T : Thread အချက်အလက်,
o : ဖိုင်မှ output;
/tmp/cloient.trace : output ဖိုင်လမ်းကြောင်း။
မှတ်စု: MySQL 0 န်ဆောင်မှုစာကြည့်တိုက်ကို debugging ကိုဤလုပ်ဆောင်မှုကိုအသုံးမပြုမီဖွင့်ထားရမည်။
ဒီ function ကို docker ကွန်တိန်နာ (သို့) virtual machine ထဲမှာသုံးတဲ့အခါမှာလိုအပ်ချက်နှစ်ခုကိုအာရုံစိုက်ဖို့လိုတယ်။
PHP သည် CLI (သို့) FPM mode တွင် run ရမည်။
ကွန်တိန်နာသို့မဟုတ် virtual machine တွင် PHP ကို debug အထောက်အပံ့ဖြင့်စုစည်းရမည်။
PHP သည် MySQLI debugging ကိုထောက်ပံ့သည်ကိုစစ်ဆေးရန်အောက်ပါ command ကိုဖွင့်ပါ။
php -i | grep 'Client API version'
ရလဒ်သည် MySQLND တွင်ပါ 0 င်ပါက၎င်းသည်ထောက်ခံမှုကိုဆိုလိုသည်။ ဒီလိုမှမဟုတ်ရင် PHP ကို recompile လုပ်ဖို့ဒါမှမဟုတ် MySQLND ပါဝင်တဲ့ PHP ပုံကို install လုပ်ဖို့လိုကောင်းလိုပေမည်။
သင် docker ကိုသုံးပါက၎င်းကိုအောက်ပါအတိုင်း dockerfile တွင် configure လုပ်နိုင်သည် -
FROM php:8.2-cli
RUN docker-php-ext-install mysqli \
&& echo "mysqli.allow_local_infile=On" >> /usr/local/etc/php/php.ini
# မလုပ်မနေရမဟုတ်သော:Debug ဖိုင်လမ်းကြောင်း Mount
VOLUME /tmp
ထို့နောက် PHP တွင်အောက်ပါကုဒ်စစ်ဆေးမှုကိုရေးပါ။
<?php
mysqli::debug("d:t:o,/tmp/client.trace");
$mysqli = new mysqli("db.m66.net", "root", "password", "test");
if ($mysqli->connect_errno) {
echo "ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $mysqli->connect_error;
exit();
}
$result = $mysqli->query("SELECT * FROM users");
while ($row = $result->fetch_assoc()) {
print_r($row);
}
$mysqli->close();
ဤ script ကို run ပြီးနောက်, /tmp/client.trace ဖိုင်တွင် debugging သတင်းအချက်အလက်များကိုသင်ကြည့်ရှုနိုင်သည်။
Virtual Machine တွင်အသုံးပြုမှုသည်ဇာတိသို့မဟုတ် docker ကိုအသုံးပြုခြင်းနှင့်မတူပါ။ မှတ်သားရမည့်တစ်ခုတည်းသောအချက်မှာ PHP လုပ်ငန်းစဉ်သည်သင်သတ်မှတ်ထားသော / TMP သို့မဟုတ်သင်သတ်မှတ်သည့်တောင်အာဖရိက၏လမ်းစဉ်၏လမ်းကြောင်းသို့စာရေးရန်ခွင့်ပြုချက်ရှိရမည်ဖြစ်သည်။
Debug Loget အကြောင်းအရာသည်အောက်ပါအတိုင်းအကြမ်းအားဖြင့်အောက်ပါအတိုင်းဖြစ်သည်။
>mysql_real_connect
>mysql_send_query
<mysql_read_query_result
...
ဤမှတ်တမ်းများမှတစ်ဆင့် connection ပျက်ကွက်မှုအတွက်အကြောင်းပြချက်များကြောင့်နှေးကွေးသောမေးမြန်းချက်များကိုကွပ်မျက်ခြင်းနှင့် DNS configuration အမှားများကြောင့်နှောင့်နှေးမှုများကိုပင်ရှာဖွေနိုင်သည်။
ထုတ်လုပ်မှုပတ် 0 န်းကျင်တွင် MySQLI :: Debug () Debug () Debug () Debug () ကို ရှောင်ရှား သင့်သည်။ ၎င်းကိုဖွံ့ဖြိုးရေးသို့မဟုတ်စစ်ဆေးခြင်းပတ် 0 န်းကျင်များတွင်သာအကြံပြုသည်။ ထုတ်လုပ်ထားသောမှတ်တမ်းဖိုင်များကိုသန့်ရှင်းရေးလုပ်ရန်သတိထားပါ။
MySQLI :: debug () Debug () Debug () debug () debug တွင်သို့မဟုတ် virtual machine ပတ်ဝန်းကျင်တွင်မရှုပ်ထွေးပါကသော့ချက်ဖြစ်သည်။
PHP သည် MySQLND ကိုသေချာအောင်လုပ်ပါ။
ကွန်တိန်နာသို့မဟုတ် virtual machine ရှိမှတ်တမ်းလမ်းကြောင်းများအတွက်ခွင့်ပြုချက်များကိုသတ်မှတ်ပါ။
Debugging ပြီးစီးပြီးနောက်အချိန်မီမှတ်တမ်းများကိုပိတ်ပါသို့မဟုတ်ဖျက်ပစ်ပါ။
ဤကိရိယာကိုကျိုးကြောင်းဆီလျော်စွာအသုံးပြုခြင်းဖြင့်ဒေတာဘေ့စ်ပြ problems နာများကိုဖြေရှင်းသည့်အခါပိုမိုထိရောက်စွာတိကျသည်။
သင့်တွင်အလားတူ debugging လိုအပ်ချက်များရှိပါကသင်ကြိုးစားပါ။