MySQLI :: Debug (Debug) သည် PHP ၏ MySQLI extension မှပေးသော debug function ကို MySQLI ဆက်သွယ်မှုနှင့်လုပ်ငန်းများနှင့်သက်ဆိုင်သော debug အချက်အလက်များကိုမှတ်တမ်းတင်ရန်ခွင့်ပြုသည်။ ဒေတာဘေ့စ် connection ပြ problems နာများသို့မဟုတ်စွမ်းဆောင်ရည်မြှင့်တင်ခြင်းများကိုဖြေရှင်းသောအခါဤလုပ်ဆောင်ချက်သည်အလွန်အသုံးဝင်သည်။ သို့သော်ယင်း၏အသုံးပြုမှုသည်အထူးသဖြင့်ခွင့်ပြုချက်များ၏စည်းကမ်းချက်များတွင်လိုအပ်သည်။ အနည်းငယ်ဂရုမစိုက်မှုသည်လုံခြုံရေးဆိုင်ရာအန္တရာယ်များကိုအကျိုးသက်ရောက်စေခြင်းသို့မဟုတ်ဖြစ်ပေါ်စေသည်။
mysqli::debug(string $debug_options): bool
ဤလုပ်ဆောင်ချက်က debugging options များကိုသတ်မှတ်ရန်ခွင့်ပြုသည်။ MySQL client library (များသောအားဖြင့်ဖိုင်) မှထောက်ပံ့သောတည်နေရာကိုစနစ်ကရေးထားသည်။ ဤလုပ်ဆောင်ချက်သည် MySQLI အရာဝတ်ထုကိုမစတင်ခင်တွင်သာခေါ်နိုင်သည်။
ဥပမာ -
mysqli::debug("d:t:o,/tmp/client.trace");
$mysqli = new mysqli("localhost", "user", "password", "database");
အထက်ပါကုဒ်သည် Debug Log သို့ /tmp/Client.trace ဖိုင်သို့ debug log ကိုရေးလိမ့်မည်။
Path Permission လိုအပ်ချက်များ - Debug log file သို့စာရေးရန်လမ်းကြောင်း (ဥပမာ /tmp/cloyent.trace ) သို့စာရေးရန်လမ်းကြောင်းကို PHP မှရေးသားရမည်။ ဆိုလိုသည်မှာဝက်ဘ်ဆာဗာသုံးစွဲသူများ ( www-data , apache , nginx စသဖြင့်) ဤဖိုင်တွဲတွင်ခွင့်ပြုချက်များကိုရေးရန်လိုအပ်သည်ဟုဆိုရန်ဖြစ်သည်။
အကြံပြုထားသောအလေ့အကျင့်များ
မှတ်တမ်းလမ်းကြောင်းကို Web Service အသုံးပြုသူရေးခွင့်ပြုသည့်လမ်းကြောင်းသို့သတ်မှတ်သင့်သည်။
root directory (သို့) အထိခိုက်မခံသောလမ်းကြောင်းများ (ဥပမာ / etc / root / ) ကိုအသုံးပြုခြင်းကိုရှောင်ပါ။
ထုံးစံလမ်းကြောင်းကိုသုံးပါကလမ်းကြောင်းသည်တည်ရှိပြီးနှင့်ဆက်နွယ်နေကြောင်းသေချာအောင်လုပ်ပါ။
sudo chown www-data:www-data /tmp
sudo chmod 755 /tmp
Selinux (သို့) Apparmor တို့ပါ 0 င်သည့်စနစ်များတွင်ဖိုင်စနစ်ခွင့်ပြုချက်မှန်ကန်မှုရှိလျှင်ပင်မူဝါဒကန့်သတ်ချက်များကြောင့်မှတ်တမ်းဖိုင်ကိုရေးသားခြင်းမပြုနိုင်ပါ။
ဖြေရှင်းချက် -
စာရင်းစစ်မှတ်တမ်းကိုကြည့်ပါ။ (များသောအားဖြင့် /var/log/audit.log ) ကိုကြည့်ပါ။
စာဖြင့်ခွင့်ပြုရန်စိတ်ကြိုက်မူဝါဒများကိုခေတ္တအနားယူပါသို့မဟုတ် configure လုပ်ပါ။
MySQLI :: Debug (Debug) ၏အပြုအမူသည် disable_rofunctions မှဘာသာရပ်ဖြစ်နိုင်သည်။
MySQLI :: Debug ကို Php.ini တွင်ပိတ်ထားလျှင်၎င်းကိုမသုံးနိုင်ပါ။
ထို့အပြင် Open_basedir သည် မှတ်တမ်းလမ်းကြောင်းများ၏အရေးအသားကိုကန့်သတ်မထားကြောင်းသေချာပါစေ။
; php.ini နမူနာ
disable_functions =
open_basedir = /var/www:/tmp
MySQLI :: Debug () Debug () Debug () Debug () ကို MySQLI () မတိုင်မီကကွပ်မျက်ခံရရမည်။
Debug Log ကိုဖွင့်ခြင်းကအချို့သောစွမ်းဆောင်ရည် overhead ကိုဖြစ်ပေါ်စေလိမ့်မည်။
Debug log တွင်ဒေတာဘေ့စ်ဆက်သွယ်မှုအသေးစိတ်,
Access Permissions များကိုသတ်မှတ်ရန်အကြံပြုသည် -
chmod 600 /tmp/client.trace
debugging အချိန်ကြာပြီဆိုပါက log file သည်အလွန်ကြီးမားလာပြီး system log rotation ယန္တရားနှင့် တွဲဖက်. စီမံသင့်သည်။
<?php
$logPath = "/tmp/mysqli_debug.log";
// လမ်းကြောင်းလွှဲပြောင်းရှိမရှိစစ်ဆေးပါ
if (is_writable(dirname($logPath))) {
mysqli::debug("d:t:o," . $logPath);
} else {
error_log("မှတ်တမ်းလမ်းညွှန်ကိုရေး။ မရပါ: " . dirname($logPath));
}
// ဆက်သွယ်မှုတစ်ခုတည်ဆောက်ပါ
$mysqli = new mysqli("localhost", "testuser", "testpass", "testdb");
if ($mysqli->connect_error) {
die("ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $mysqli->connect_error);
}
// သရုပ်ပြသရုပ်ပြ
$result = $mysqli->query("SELECT * FROM articles WHERE domain = 'm66.net'");
while ($row = $result->fetch_assoc()) {
echo "ဘဲှ့: " . $row["title"] . "<br>";
}
$mysqli->close();
?>
MySQLI :: Debug () Debug () သည်အားကောင်းသော debugging tool တစ်ခုဖြစ်သည်။ သို့သော်၎င်းကိုအသုံးပြုသောအခါသင်သေချာစေရန်လိုအပ်သည်။
ရေးရန်လမ်းကြောင်းကိုလက်လှမ်းမီနိုင်ပြီးခွင့်ပြုချက်သည်မှန်ကန်သည်။
PHP ပတ်ဝန်းကျင်သည်ဤလုပ်ဆောင်ချက်ကိုခွင့်ပြုထားသည်။
မှတ်တမ်းဖိုင်ကာကွယ်စောင့်ရှောက်ရေးနေရာဖြစ်သည်။
ဘေးကင်းလုံခြုံမှုနှင့်စွမ်းဆောင်ရည်ပြ problems နာများကိုရှောင်ရှားရန် debugging ပြီးဆုံးပြီးနောက်အချိန်မီပိတ်ပါ။
အကောင်းဆုံးသောအလေ့အကျင့်များအကြောင်းကိုအောက်ပါအချက်များတွင် MySQLI :: Debug (Debug) သည် ဒေတာဘေ့စ်ပြ problems နာများကိုရှာဖွေရန်အလွန်ကောင်းမွန်သောကိရိယာတစ်ခုဖြစ်လိမ့်မည်။