လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> MySQLI :: debug ကို debug ကို debugguging သို့မဟုတ် virtual machine ပတ်ဝန်းကျင်ရှိ Debug

MySQLI :: debug ကို debug ကို debugguging သို့မဟုတ် virtual machine ပတ်ဝန်းကျင်ရှိ Debug

M66 2025-06-01

PHP Development တွင် MySQLI :: Debug (Debug) သည်လူသိများသော်လည်းအလွန်အသုံးဝင်သောလုပ်ဆောင်ချက်ဖြစ်သည်။ အထူးသဖြင့်ရှုပ်ထွေးသောဒေတာဘေ့စ်ဆက်သွယ်မှုများသို့မဟုတ်မေးမြန်းမှုပြ problems နာများကိုကိုင်တွယ်ဖြေရှင်းသည့်အခါ MySQLI extensions ၏အတွင်းပိုင်းကွပ်မျက်ခြင်းကိုဖျက်သိမ်းရန်၎င်းကိုအသုံးပြုနိုင်သည်။

ဤဆောင်းပါးသည် MySQLI :: Debuggage ကို Enable လုပ်ရမည်ကိုရှင်းပြပြီး debugging စွမ်းဆောင်ရည်ကိုတိုးတက်စေရန်အတွက် debugger သို့မဟုတ် virtual machine environ ိုင်ရှိသည်။

1 ။ MySQLI :: Debug () ဘာတွေလဲ။

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 ကိုဤလုပ်ဆောင်မှုကိုအသုံးမပြုမီဖွင့်ထားရမည်။

2 ။ debugging function ကို debuging function ကို docyer သို့မဟုတ် virtual machine အတွက် enable

ဒီ function ကို docker ကွန်တိန်နာ (သို့) virtual machine ထဲမှာသုံးတဲ့အခါမှာလိုအပ်ချက်နှစ်ခုကိုအာရုံစိုက်ဖို့လိုတယ်။

  1. PHP သည် CLI (သို့) FPM mode တွင် run ရမည်။

  2. ကွန်တိန်နာသို့မဟုတ် virtual machine တွင် PHP ကို ​​debug အထောက်အပံ့ဖြင့်စုစည်းရမည်။

1 ။ PHP သည် debugging function ကိုထောက်ပံ့ကြောင်းအတည်ပြုပါ

PHP သည် MySQLI debugging ကိုထောက်ပံ့သည်ကိုစစ်ဆေးရန်အောက်ပါ command ကိုဖွင့်ပါ။

 php -i | grep 'Client API version'

ရလဒ်သည် MySQLND တွင်ပါ 0 င်ပါက၎င်းသည်ထောက်ခံမှုကိုဆိုလိုသည်။ ဒီလိုမှမဟုတ်ရင် PHP ကို ​​recompile လုပ်ဖို့ဒါမှမဟုတ် MySQLND ပါဝင်တဲ့ PHP ပုံကို install လုပ်ဖို့လိုကောင်းလိုပေမည်။

2 ။ DockerFile ဥပမာ (MySQLI Debug ကို Enable)

သင် 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 သတင်းအချက်အလက်များကိုသင်ကြည့်ရှုနိုင်သည်။

3 ။ virtual machine ပတ် 0 န်းကျင်ဖော်ပြချက် (ဥပမာ vagrant ကိုအသုံးပြုခြင်း)

Virtual Machine တွင်အသုံးပြုမှုသည်ဇာတိသို့မဟုတ် docker ကိုအသုံးပြုခြင်းနှင့်မတူပါ။ မှတ်သားရမည့်တစ်ခုတည်းသောအချက်မှာ PHP လုပ်ငန်းစဉ်သည်သင်သတ်မှတ်ထားသော / TMP သို့မဟုတ်သင်သတ်မှတ်သည့်တောင်အာဖရိက၏လမ်းစဉ်၏လမ်းကြောင်းသို့စာရေးရန်ခွင့်ပြုချက်ရှိရမည်ဖြစ်သည်။

3 ။ log နမူနာကို debugging

Debug Loget အကြောင်းအရာသည်အောက်ပါအတိုင်းအကြမ်းအားဖြင့်အောက်ပါအတိုင်းဖြစ်သည်။

 >mysql_real_connect
>mysql_send_query
<mysql_read_query_result
...

ဤမှတ်တမ်းများမှတစ်ဆင့် connection ပျက်ကွက်မှုအတွက်အကြောင်းပြချက်များကြောင့်နှေးကွေးသောမေးမြန်းချက်များကိုကွပ်မျက်ခြင်းနှင့် DNS configuration အမှားများကြောင့်နှောင့်နှေးမှုများကိုပင်ရှာဖွေနိုင်သည်။

4 ။ လုံခြုံရေးအကြံပြုချက်များ

ထုတ်လုပ်မှုပတ် 0 န်းကျင်တွင် MySQLI :: Debug () Debug () Debug () Debug () ကို ရှောင်ရှား သင့်သည်။ ၎င်းကိုဖွံ့ဖြိုးရေးသို့မဟုတ်စစ်ဆေးခြင်းပတ် 0 န်းကျင်များတွင်သာအကြံပြုသည်။ ထုတ်လုပ်ထားသောမှတ်တမ်းဖိုင်များကိုသန့်ရှင်းရေးလုပ်ရန်သတိထားပါ။

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

MySQLI :: debug () Debug () Debug () debug () debug တွင်သို့မဟုတ် virtual machine ပတ်ဝန်းကျင်တွင်မရှုပ်ထွေးပါကသော့ချက်ဖြစ်သည်။

  • PHP သည် MySQLND ကိုသေချာအောင်လုပ်ပါ။

  • ကွန်တိန်နာသို့မဟုတ် virtual machine ရှိမှတ်တမ်းလမ်းကြောင်းများအတွက်ခွင့်ပြုချက်များကိုသတ်မှတ်ပါ။

  • Debugging ပြီးစီးပြီးနောက်အချိန်မီမှတ်တမ်းများကိုပိတ်ပါသို့မဟုတ်ဖျက်ပစ်ပါ။

ဤကိရိယာကိုကျိုးကြောင်းဆီလျော်စွာအသုံးပြုခြင်းဖြင့်ဒေတာဘေ့စ်ပြ problems နာများကိုဖြေရှင်းသည့်အခါပိုမိုထိရောက်စွာတိကျသည်။

သင့်တွင်အလားတူ debugging လိုအပ်ချက်များရှိပါကသင်ကြိုးစားပါ။