ဒေတာဘေ့စ်လုပ်ငန်းများသည် PHP ဖွံ့ဖြိုးတိုးတက်မှုပြုလုပ်ရာတွင်အထူးသဖြင့်အက်ပလီကေးရှင်းတစ်ခုတွင် database connection မျိုးစုံကိုကိုင်တွယ်သောအခါရှုပ်ထွေးသွားနိုင်သည်။ PHP ၏ MySQLI :: Debug နည်းလမ်းသည်အလွန်အမင်းဖော်ပြသော debugging tool တစ်ခုဖြစ်ပြီးအထူးသဖြင့်ဒေတာဘေ့စ်ဆက်သွယ်မှုများကိုခွဲခြမ်းစိတ်ဖြာခြင်း,
ဒေတာဘေ့စ်ဆက်သွယ်မှုမျိုးစုံကို debing လုပ်သည့် MySQLI :: Debug နည်းလမ်းကိုမည်သို့ထိထိရောက်ရောက်အသုံးပြုနိုင်မည်ကိုဤဆောင်းပါးကအသေးစိတ်ဖော်ပြပြီး၎င်းကိုနမူနာကုဒ်နှင့်ပေါင်းစပ်။ ရှင်းပြပါလိမ့်မည်။
MySQLI :: Debug () Debug သည် MySQLI extension တွင်ရှိသော MySQLI extension တွင်ဖော်ပြထားသော static method တစ်ခုဖြစ်သည်။ ဤလုပ်ဆောင်ချက်သည်မည်သည့်အရာကိုမဆိုပြန်လည်မရောက်ပါ, အဓိကလုပ်ဆောင်ချက်မှာ client library မှ configure debug file ထဲသို့ debug အချက်အလက်ကိုရေးရန်ဖြစ်သည်။
၎င်းကိုအလုပ်လုပ်ရန် My.cnf သို့မဟုတ် My.ini တွင် debug အထောက်အပံ့ကိုဖွင့် ထား ရမည် ။
mysqli::debug("d:t:o,/tmp/client.trace");
ဤအရာသည် /tmp/Cletient.trace သို့ debug သတင်းအချက်အလက်ကိုရေးပါမည်။
Primary Database နှင့် Multipabase ဖတ်ရှုခြင်းကဲ့သို့သောဒေတာဘေ့စ်မျိုးစုံသည်သင်၏လျှောက်လွှာနှင့်ချိတ်ဆက်ထားသည့်အခါ, ဒီနေရာမှာအကြံပြုထားတဲ့နည်းဗျူဟာအချို့ရှိပါတယ်။
ဒေတာဘေ့စ် connection process ကိုသင် adapcapsulate လုပ်နိုင်သည်, connection တစ်ခုချင်းစီအတွက်မှတ်ပုံတင်အမည်တစ်ခုထည့်ပြီးအရင်းအမြစ်ကို output log တွင်ခွဲခြားနိုင်သည်။
function connect_to_db($label, $host, $user, $pass, $db) {
mysqli::debug("d:t:o,/tmp/{$label}_trace.log"); // ဆက်သွယ်မှုတစ်ခုစီအတွက် Debug ဖိုင်ကို set up လုပ်ပါ
$conn = new mysqli($host, $user, $pass, $db);
if ($conn->connect_error) {
die("ဆက်သွယ်မှုမအောင်မြင်ပါ ({$label}): " . $conn->connect_error);
}
return $conn;
}
$main_db = connect_to_db("main", "localhost", "root", "password", "main_db");
$replica_db = connect_to_db("replica", "localhost", "root", "password", "replica_db");
MySQLI :: Debug သည်နောက်ခံ debugging သတင်းအချက်အလက်များသည် PHP ၏မှတ်တမ်း output နှင့်ပြည့်စုံသော debugging link ကိုဖွဲ့စည်းနိုင်သည်။
mysqli::debug("d:t:o,/tmp/replica_trace.log");
$replica_conn = new mysqli("localhost", "user", "pass", "replica_db");
if ($replica_conn->connect_error) {
error_log("ပုံတူဒေတာဘေ့စ်ကိုချိတ်ဆက်ရန်မအောင်မြင်ပါ: " . $replica_conn->connect_error);
} else {
error_log("Replica ဒေတာဘေ့စ်ကိုအောင်မြင်စွာဆက်သွယ်ခြင်း: " . $replica_conn->host_info);
}
ပြ problems နာများကိုလျင်မြန်စွာရှာဖွေရန် http://m66.net/log-Viewer အဖြစ်အသုံးပြုနိုင်သည်။
ဖွံ့ဖြိုးမှုသို့မဟုတ်စမ်းသပ်ခြင်းပတ်ဝန်းကျင်တွင် MySQLI :: Debug ကို ကိုယ်တိုင်ကိုယ်ကျဖုန်းဆက်ချင်မည်မဟုတ်ပါ။ ယခုအချိန်တွင်သင် debugging enable ရှိမရှိထိန်းချုပ်ရန်ပတ်ဝန်းကျင် variable များကိုသို့မဟုတ် configuration files များကိုသုံးနိုင်သည်။
if (getenv("DB_DEBUG") === "true") {
mysqli::debug("d:t:o,/tmp/debug_trace.log");
}
.env ဖိုင်ထဲမှာထည့်ပါ:
DB_DEBUG=true
MySQLI_REPORE () ကိုပေါင်းစပ်ခြင်းသည်ပိုမိုကောင်းမွန်သောအရာများကိုဖမ်းယူနိုင်သည်။
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
mysqli::debug("d:t:o,/tmp/debug_trace.log");
$conn = new mysqli("localhost", "user", "pass", "some_db");
၎င်းသည်အသံတိတ်ပျက်ကွက်မည့်အစားခြွင်းချက်များကိုချမှတ်လိမ့်မည်။