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

MySQLI ၏မှတ်တမ်းအချက်အလက်များသည်အဘယ်ကြောင့် MySQLI :: Debug ကိုပြသခဲ့သည်။

M66 2025-05-17

MySQLI :: Debug (Debug) ကိုအသုံးပြုခြင်း MySQLI ဆက်သွယ်မှုများနှင့်ကွပ်မျက်ခြင်းကို debing လုပ်ရန်အလွန်လက်တွေ့ကျကျနည်းလမ်းဖြစ်သည်။ ၎င်းသည်အခြေခံခေါ်ဆိုမှုများ, ဆက်သွယ်မှုအသေးစိတ်, ကွပ်မျက်ထုတ်ပြန်ချက်များနှင့်အခြားအချက်အလက်များကိုမှတ်တမ်းဖိုင်များထဲသို့မှတ်တမ်းတင်နိုင်ပြီးပြ problems နာများကိုခွဲခြမ်းစိတ်ဖြာရန်ကူညီနိုင်သည်။ သို့သော်တစ်ခါတစ်ရံတွင် developer များသည်ရှုပ်ထွေးသောဖြစ်ရပ်တစ်ခုကိုကြုံတွေ့ရနိုင်သည် ဒီတော့ဒီအရာကဘာအကြောင်းရင်းဖြစ်နိုင်သလဲ။

1 ။ MySQLI :: Debug ကိုမှန်ကန်စွာသုံးပါ

ပြ the နာကိုမဆန့်ကျင်မီ, MySQLI :: Debug () Debug () ကိုမှန်ကန်စွာဟုခေါ်သည်ကို ဦး စွာအတည်ပြုသည်။ အခြေခံအသုံးပြုမှုမှာအောက်ပါအတိုင်းဖြစ်သည် -

 mysqli::debug("d:t:o,/tmp/client.trace");
$mysqli = new mysqli("localhost", "username", "password", "database");

debugging options ကိုရှင်းပြပါ:

  • Debug DeDatcher (အထွေထွေ Debug Tracing)

  • T : Record Tracking Information (ခြေရာခံခြင်း)

  • o, TMP / client.trace : log to /tmp/Cletient.trace ဖိုင်သို့ log to output လုပ်ပါ

??ကြိုတင်သတိပေးချက်များ:

  • MySQLI :: debug () ကို အကျိုးသက်ရောက်စေရန် ဆက်သွယ်မှုကိုဖန်တီးခြင်းမပြုမီ ခေါ်ရမည်။

  • MySQLI :: Debug () Debug () သည် static method တစ်ခုဖြစ်သည်။

2 ။ မှတ်တမ်းများအချည်းနှီးဖြစ်သောဘုံအကြောင်းပြချက်များ၏ခွဲခြမ်းစိတ်ဖြာခြင်း

သင်မြင်တွေ့ရမည့်မှတ်တမ်းအချက်အလက်များကိုဗလာဖြစ်စေသည်။

1 ။ MySQLI debugging အထောက်အပံ့ကိုမဖွင့်ပါ

MySQLI :: Debug () Debug () function သည် MySQL client library (libmsqlqlies သို့မဟုတ် MySQLND) တွင်မူတည်သည်။ MySQLI :: Debug () MySQLND ကိုသုံးသောအခါ MySQLND (MySQL ဇာတိယာဉ်မောင်း) ကိုအသုံးပြုသောအခါသာထောက်ပံ့သည်။ အကယ်. သင်၏ PHP သည် Libmclintien ကို အသုံးပြုနေပါက Debugging Function သည်အကျိုးသက်ရောက်မည်မဟုတ်ပါ။

သင်အတည်ပြုနိုင်သည်:

 echo mysqli_get_client_stats() ? 'mysqlnd' : 'libmysqlclient';

သို့မဟုတ်:

 phpinfo(); // တေှ့မြင် mysqlnd enable ဖို့ရှိမရှိ

အကယ်. သင်သည် LibmclClient ကို အသုံးပြုနေပါက MySQLND သို့ပြောင်းရန်အကြံပြုပါသည်။

2 ။ အဘယ်သူမျှမရေးခွင့်ခွင့်ပြုချက်

သတ်မှတ်ထားသောမှတ်တမ်းလမ်းကြောင်း (ဥပမာ /tmp/cloyient.tace ကဲ့သို့) အကယ်. PPP သို့မရေးနိုင်ပါကမှတ်တမ်းကိုထုတ်လုပ်။ မရပါ။ ဤလမ်းကြောင်းသည် PHP (ဥပမာ www-data, apache, apache, nginx) အသုံးပြုသူများကိုအသုံးပြုသူများကိုခွင့်ပြုချက်ပေးရန်ခွင့်ပြုထားပါ။

ခွင့်ပြုချက်ကိုစစ်ဆေးနိုင်သည်

 sudo touch /tmp/client.trace
sudo chown www-data:www-data /tmp/client.trace
sudo chmod 664 /tmp/client.trace

3 ။ Debug Call တည်နေရာမမှန်ကန်ပါ

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

အမှားသရုပ်ပြ

 $mysqli = new mysqli("localhost", "username", "password", "database");
mysqli::debug("d:t:o,/tmp/client.trace"); // အားမရှိသော!

မှန်ကန်သောအရေးအသား -

 mysqli::debug("d:t:o,/tmp/client.trace");
$mysqli = new mysqli("localhost", "username", "password", "database");

4 ။ မြဲ connection ကိုအသုံးပြုသည်

အချို့ဖြစ်ရပ်များတွင်သင်သည် P: Host ပုံစံတွင်မြဲမြဲချိတ်ဆက်မှုတစ်ခုကိုအသုံးပြုနေပါက Debugging သည်မျှော်လင့်ထားသည့်အတိုင်းသတင်းအချက်အလက်များကိုမှတ်တမ်းတင်မည်မဟုတ်ပါ။ သငျသညျမ ens ည့်သည်မဟုတ်သောဆက်သွယ်မှုနှင့်အတူပြ esh နာဖြေရှင်းရန်ကြိုးစားနိုင်ပါတယ်။

5 ။ အမှန်တကယ် SQL ကွပ်မျက်ခြင်းမရှိပါ

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

 mysqli::debug("d:t:o,/tmp/client.trace");
$mysqli = new mysqli("localhost", "username", "password", "database");
$mysqli->query("SELECT * FROM users");

3 ။ ကျွမ်းကျင်မှုနှင့်အကြံပြုချက်များ debugging

  • / -Var/log/ mysqli.tace ကဲ့သို့သော log output ကို output လုပ်ရန်အကြွင်းမဲ့လမ်းကြောင်းကို သုံး. သင့်လျော်သောခွင့်ပြုချက်များကိုသတ်မှတ်ပါ။

  • ရှုပ်ထွေးသောစီးပွားရေးယုတ္တိဗေဒကို 0 င်ရောက်စွက်ဖက်ခြင်းမှရှောင်ကြဉ်ရန်ဖြစ်နိုင်သည့်အခါတိုင်း debugging function များကိုစမ်းသပ်ရန်လွတ်လပ်သော scial များကိုသုံးပါ။

  • သတင်းအချက်အလက်ယိုစိမ့်မှုကိုရှောင်ရှားရန်လမ်းညွှန်လမ်းကြောင်းကို 0 င်ရောက်ရန်လမ်းညွှန်လမ်းကြောင်းကို Public Network တွင်နေရာမချရန်အကြံပြုသည်။

4 ။ နမူနာကုဒ်

 <?php
// Debug မှတ်တမ်းလမ်းကြောင်းကိုသတ်မှတ်ပါ
mysqli::debug("d:t:o,/tmp/mysqli_debug.log");

// ဒေတာဘေ့စ် connection တစ်ခုတည်ဆောက်ပါ
$mysqli = new mysqli("localhost", "my_user", "my_password", "my_database");

// တစ် ဦး စုံစမ်းမှု execute
$result = $mysqli->query("SELECT * FROM users");

// ရလဒ်များကိုပြပါ
while ($row = $result->fetch_assoc()) {
    echo $row['username'] . "\n";
}
?>

မှတ်တမ်း output ကို /tmp/mysqli_debuggug.log တွင်သင်ကြည့်ရှုနိုင်သည်။ ရေးရန်ခွင့်ပြုချက်ကိုသတ်မှတ်ရန်သတိရပါ။

V. အခြားအရင်းအမြစ်များ