PHP applications များကိုတီထွင်သည့်အခါ MySQLI extension များသည် MySQL database များနှင့်အပြန်အလှန်ဆက်သွယ်ရန်သာမန်နည်းလမ်းဖြစ်သည်။ ဒေတာဘေ့စ်စစ်ဆင်ရေးအမှားတစ်ခုဖြစ်သောအခါအမှားကုဒ်ကို MySQLI :: $ errno ဖြင့်ရရှိသောအမှားများကို MySQLI :: $ အမှား နှင့်ပေါင်းစပ်ထားသည်။ သို့သော်ဤအမှားအချက်အလက်များကိုမှတ်တမ်းထဲသို့မည်သို့ထိရောက်စွာခွဲခြားနိုင်, ခွဲခြမ်းစိတ်ဖြာနည်း,
ဤဆောင်းပါးသည် PHP ၏ MySQLI :: Logno နှင့် logno system မှတဆင့် MySQL အမှားများကိုမည်သို့ခွဲခြားရမည်ကိုရှင်းပြပါမည်။ ၎င်းသည်ဒေတာဘေ့စ်ဆက်သွယ်မှုပြ problems နာများ, query resurnures and query and quervation ား, အခြားအမှားများကိုပိုမိုကောင်းမွန်အောင်ကိုင်တွယ်နိုင်သည်။
ပထမ ဦး စွာ MySQLI မှတစ်ဆင့်အမှားသတင်းအချက်အလက်များကိုမည်သို့ရယူရမည်ကိုကျွန်ုပ်တို့သိရန်လိုအပ်သည်။ MySQLI အတန်းသည်ဒေတာဘေ့စ်နှင့်သက်ဆိုင်သောအမှားများကိုဖမ်းရန်ကူညီရန်ဂုဏ်သတ္တိများများစွာရှိသည်။
MySQLI :: $ errno : ယခင် MySQL စစ်ဆင်ရေး၏အမှားကုဒ်ကိုပြန်ပို့သည်။
MySQLI :: $ အမှား - ယခင် MySQL စစ်ဆင်ရေး၏အမှားအယွင်းကိုပြန်ပို့သည်။
ဤအချက်အလက်များကိုအသုံးပြုခြင်းသည်ဒေတာဘေ့စ်လည်ပတ်မှုတစ်ခုစီသည်အောင်မြင်မှုရှိမရှိစစ်ဆေးနိုင်သည်။ အကယ်. ၎င်းသည်ပျက်ကွက်ပါကအသေးစိတ်အမှားအယွင်းတစ်ခုရရှိရန်ဤအချက်အလက်များကိုကျွန်ုပ်တို့အသုံးပြုနိုင်သည်။
<?php
$mysqli = new mysqli("localhost", "user", "password", "database");
// ဆက်သွယ်မှုကိုစစ်ဆေးပါ
if ($mysqli->connect_error) {
echo "ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $mysqli->connect_error;
exit();
}
// တစ် ဦး ကွပ်မျက်ခံရ SQL မေးမြန်း
$result = $mysqli->query("SELECT * FROM non_existent_table");
if (!$result) {
// အမှားကုဒ်များနှင့်အမှားအယွင်းများကိုဖမ်းယူခြင်း
$errno = $mysqli->errno;
$error = $mysqli->error;
echo "MySQL အမှားနံပါတ်: $errno, အမှားသတင်းစကား: $error";
}
?>
အကယ်. စုံစမ်းမှုကွပ်မျက်မှုမအောင်မြင်ပါက MySQLI :: MySQLI နှင့် MySQLI :: MySQLI :: $ အမှားကိုရိုက်ကူးပြီး၎င်းကိုမှတ်တမ်းတင်ရန် $ အမှားအယွင်းကို သုံးနိုင်သည်။
ထို့နောက်ကျွန်ုပ်တို့သည်ဤအမှားအယွင်းများကို log system ထဲသို့ပေါင်းစပ်ထားသည်။ ပိုမိုရှုပ်ထွေးသောသစ်ထုတ်လုပ်ရေးလုပ်ငန်းများကိုအကောင်အထည်ဖော်ရန် Monolg ကဲ့သို့သောလက်ရှိမော်ဒယ်လ်စာကြည့်တိုက်များအသုံးပြုရန်သို့မဟုတ် Monolog ကဲ့သို့သောလက်ရှိမော်ဒယ်စာကြည့်တိုက်များကိုအသုံးပြုသည်။
အလွယ်ကူဆုံးနည်းလမ်းမှာ PHP ၏ built-in logging function function error_log () ကို ဖွင့်ရန်ဖြစ်သည်။
<?php
// မှတ်တမ်းဖိုင်လမ်းကြောင်းကိုပြင်ဆင်ပါ
$log_file = "/path/to/your/logfile.log";
// 捕获အမှားသတင်းစကား并写入日志
if (!$result) {
$errno = $mysqli->errno;
$error = $mysqli->error;
$log_message = date("Y-m-d H:i:s") . " - အမှားနံပါတ်: $errno, အမှားသတင်းစကား: $error\n";
error_log($log_message, 3, $log_file);
}
?>
ပိုမိုပြောင်းလွယ်ပြင်လွယ်သစ်ထုတ်လုပ်ရေးအတွက်ကျွန်ုပ်တို့သည်တတိယပါတီစာကြည့်တိုက်တစ်ခုအဖြစ် Monolog ကို သုံးနိုင်သည်။ Monologs သည် Log Processor အမျိုးမျိုးကိုထောက်ပံ့သည်။ ၎င်းသည်ဖိုင်များ, ဒေတာဘေ့စ်များ , အီးမေးလ်များနှင့် အခြား ချန်နယ်များကိုထုတ်လွှင့်နိုင်သည် ။
<?php
require 'vendor/autoload.php';
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
// တစ် ဦး မှတ်တမ်းချန်နယ်ကိုဖန်တီးပါ
$log = new Logger('my_logger');
$log->pushHandler(new StreamHandler('/path/to/your/logfile.log', Logger::ERROR));
// 执行မေးမြန်း并捕获အမှား
if (!$result) {
$errno = $mysqli->errno;
$error = $mysqli->error;
// 记录အမှားသတင်းစကား到日志
$log->error("MySQL အမှားနံပါတ်: $errno, အမှားသတင်းစကား: $error");
}
?>
မှတ်တမ်းများမှတဆင့်ကျွန်ုပ်တို့သည်အမှားအချက်အလက်များကိုမှတ်တမ်းတင်ရုံသာမကအမှားအယွင်းအမျိုးမျိုးနှင့်အညီခွဲခြားနိုင်သည်။ ဥပမာ Database Connection ပျက်ကွက်ခြင်း, SQL query syntax အမှားများ, ဒေတာသတ်ချိုးဖောက်မှုများစသည်ဖြင့်ဤအမှားများကိုနောက်ပိုင်းခွဲခြမ်းစိတ်ဖြာခြင်းအတွက်သီးခြားစီမှတ်တမ်းတင်နိုင်သည်။
ကွဲပြားခြားနားသောအမှားအယွင်းများအတွက်မတူညီသောမှတ်တမ်းအဆင့်သတ်မှတ်ချက်ကိုကျွန်ုပ်တို့သတ်မှတ်နိုင်သည်။
<?php
if ($mysqli->connect_error) {
$log->critical("数据库ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $mysqli->connect_error);
} elseif (!$result) {
$errno = $mysqli->errno;
$error = $mysqli->error;
if ($errno == 1146) {
$log->warning("စားပွဲ၌အမှားမရှိပါ: $error");
} else {
$log->error("အခြား MySQL အမှား: $error");
}
}
?>
ဤဥပမာတွင်ဒေတာဘေ့စ်ဆက်သွယ်မှုမအောင်မြင်ပါကကျွန်ုပ်တို့သည်မှတ်တမ်းကို log လုပ်ရန် အရေးကြီးသော အဆင့်ကိုအသုံးပြုသည်။ စားပွဲ၌မရှိသေးသောအမှားများအတွက်ကျွန်ုပ်တို့သည် သတိပေး အဆင့်မှတ်တမ်းများကိုအသုံးပြုသည်။
Error Logs ဖြင့်လျှောက်လွှာအတွင်းရှိအလားအလာရှိသောပြ problems နာများကိုရှာဖွေရန်ဤမှတ်တမ်းများကိုခွဲခြမ်းစိတ်ဖြာနိုင်သည်။ ဥပမာအားဖြင့်ကျွန်ုပ်တို့သည် log file ထဲတွင်တိကျသောအမှားများကိုရှာဖွေရန် GREP command ကိုသုံးနိုင်သည်သို့မဟုတ်ပိုမိုနက်ရှိုင်းသောခွဲခြမ်းစိတ်ဖြာခြင်းပြုလုပ်ရန် log ခွဲခြမ်းစိတ်ဖြာကိရိယာများကိုသုံးနိုင်သည်။
သင်ဒေတာဘေ့စ်အမှားများကိုအလိုအလျောက်စောင့်ကြည့်လိုပါက Log Aggase အမှားများမှတစ်ဆင့်ဒေတာဘေ့စ်အမှားများကိုရှာဖွေတွေ့ရှိရန်နှင့်တုန့်ပြန်ခြင်းကိုရှာဖွေရန်နှင့်တုန့်ပြန်ရန်စနစ်စောင့်ကြည့်ရေးကိရိယာများကိုပေါင်းစပ်နိုင်သည်။
MySQLI :: errno ကို log system ဖြင့်ပေါင်းစပ်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည် MySQL ဒေတာဘေ့စ်လုပ်ငန်းများ၌အမှားအယွင်းများကိုပိုမိုကောင်းမွန်စွာစီမံခန့်ခွဲနိုင်သည်။ ၎င်းသည်အမှားအယွင်းများကိုဖမ်းရန်နှင့်ခွဲခြားရန်သာမကနောက်ပိုင်းတွင်အမှားခွဲခြမ်းစိတ်ဖြာခြင်းနှင့်ဆွေးနွေးခြင်းကိုပိုမိုအကောင်အထည်ဖော်ရန်အတွက်လည်းအထောက်အကူပြုသည်။
အကယ်. သင်သည်သင်၏စီမံကိန်းတွင် Monolog ကဲ့သို့သောမော်နီတာကဲ့သို့မော်နီဒသော်ကဲ့သို့သောမော်နီဒ်ကိုအသုံးပြုခဲ့ပါက MySQLI အမှားအချက်အလက်များနှင့်ပေါင်းစပ်။ ပိုမိုထိရောက်သောအမှားခြေရာခံခြင်းနှင့်ပြုပြင်ခြင်းကိုသင်ရရှိနိုင်ပါသည်။ ခွဲခြားခြင်းနှင့်ခွဲခြမ်းစိတ်ဖြာခြင်းအမှားများသည်စနစ်ကိုပိုမိုကောင်းမွန်စေရန်အတွက်အရေးကြီးသောခြေလှမ်းတစ်ခုဖြစ်သည်။