MySQLI extension ကိုအသုံးပြုခြင်းသည် PHP တွင်ဒေတာဘေ့စ်လုပ်ငန်းများကိုလုပ်ဆောင်ရန်အသုံးအများဆုံးနည်းလမ်းများအနက်မှတစ်ခုဖြစ်သည်။ သို့သော်ဒေတာဘေ့စ်သည်အမှားအယွင်းများကိုရှာဖွေခြင်းအမှားများကိုရှာဖွေသောအခါ developer များရှာဖွေတွေ့ရှိရန်နှင့်ပြ problems နာများကိုဖြေရှင်းရန်ကူညီရန်ရှင်းရှင်းလင်းလင်းနှင့်အသေးစိတ်အမှားအချက်များလိုအပ်လေ့ရှိသည်။ MySQLI :: $ errno သည် ဒေတာဘေ့စ်လုပ်ငန်းများတွင်ဖြစ်ပေါ်သောအမှားကုဒ်များကိုရရှိရန်အသုံးပြုနိုင်သည်။ MySQLI :: $ အမှား နှင့်ပေါင်းစပ်ပြီးကျွန်ုပ်တို့သည်အသေးစိတ်အမှားအချက်ပြစနစ်ကိုအကောင်အထည်ဖော်နိုင်သည်။
ဤဆောင်းပါးသည် MySQLI :: err ည့်သည်များကို အသုံးပြု. Developer များကအမှားအယွင်းများဖြစ်ပေါ်နေသောအခါ roy ည့်သည်များပေါ်ပေါက်လာနိုင်ရန်အတွက်အသေးစိတ်ဒေတာဘေ့စ် Query Prompty စနစ်ကိုတည်ဆောက်ရန်အတွက် Database Query Prompty စနစ်ကိုတည်ဆောက်ရန်ဖြစ်သည်။
အမှန်တကယ်အမှားကိုင်တွယ်မှုစနစ်တစ်ခုတွင်ကျွန်ုပ်တို့သည်ဒေတာဘေ့စ်နှင့်ဆက်သွယ်မှုတစ်ခုတည်ဆောက်ရန်လိုအပ်သည်။ PHP တွင်ဤအရာကိုပြုလုပ်ရန် MySQLI အတန်းကိုသုံးနိုင်သည်။
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test_db";
// ဆက်သွယ်မှုတစ်ခုဖန်တီးပါ
$conn = new mysqli($servername, $username, $password, $dbname);
// ဆက်သွယ်မှုကို detect
if ($conn->connect_error) {
die("ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $conn->connect_error);
}
?>
ဒေတာဘေ့စ်စုံစမ်းမှုကွပ်မျက်မှုပျက်ကွက်သည့်အခါ MySQLI :: $ errno သည် မှားယွင်းသောနံပါတ်ကိုပြန်ပေးလိမ့်မည် ။ အသေးစိတ်အမှားအချက်များထုတ်လုပ်ရန်ဤအချက်အလက်များကိုကျွန်ုပ်တို့အသုံးပြုနိုင်သည်။
<?php
$sql = "SELECT * FROM non_existing_table"; // မမှန်ကန်သောစုံစမ်းမှု
$result = $conn->query($sql);
if (!$result) {
$errorCode = $conn->errno; // အမှားကုဒ်ကိုရယူပါ
$errorMessage = $conn->error; // အမှားမက်ဆေ့ခ်ျကိုရယူပါ
echo "အမှားအမှား,အမှားကုဒ်:$errorCode,အမှားသတင်းစကား:$errorMessage";
}
?>
အထက်ပါကုဒ်များတွင်ကျွန်ုပ်တို့သည်အမှားကိုအစပျိုးရန်ရည်ရွယ်ချက်ဖြင့်မှားယွင်းသော SQL မေးမြန်းမှုကိုတမင်တကာရေးသားခဲ့သည်။ query ပျက်ကွက်သည့်အခါအမှားကုဒ်ကို $ conn-errno နှင့် errno နှင့်အမှားအယွင်းများမှရရှိသောအမှားအယွင်းများကို developer များပြ the နာကိုရှင်းရှင်းလင်းလင်းနားလည်စေရန်ကူညီရန်အမှားအယွင်းများကိုရရှိသည်။
အမှားအယွင်းများကိုပိုမိုလုပ်ဆောင်နိုင်ရန်အတွက်အမှားမက်ဆေ့ခ်ျကို HTML စာမျက်နှာတစ်ခုသို့ format လုပ်ထားနိုင်ပြီးအမှားအယွင်းများ, Query Computer, အမှားအယွင်းများ,
<?php
function handleDatabaseError($conn) {
$errorCode = $conn->errno;
$errorMessage = $conn->error;
$query = $conn->last_query; // လတ်တလောကွပ်မျက်ခံရစုံစမ်းမှုကိုရယူပါ
$timestamp = date("Y-m-d H:i:s");
echo "<h2>数据库အမှားအမှား</h2>";
echo "<p><strong>အမှားအချိန်:</strong>$timestamp</p>";
echo "<p><strong>အမှားကုဒ်:</strong>$errorCode</p>";
echo "<p><strong>အမှားသတင်းစကား:</strong>$errorMessage</p>";
echo "<p><strong>Execution Query:</strong><pre>$query</pre></p>";
echo "<p>ကျေးဇူးပြု။ ကျသင့်ငွေတွက်ပေးပါ SQL အမှားများကိုဖြေရှင်းရန်ကြိုးစားပါ。</p>";
}
$sql = "SELECT * FROM non_existing_table"; // အမှားရှာဖွေခြင်း
$result = $conn->query($sql);
if (!$result) {
handleDatabaseError($conn); // အမှားကိုင်တွယ် function ကိုခေါ်ဆိုခြင်း
}
?>
ဤဥပမာတွင်ကျွန်ုပ်တို့သည်အသေးစိတ်အမှားအချက်အလက်များကိုဖော်ပြသည့် လက်ကိုင်ဘေ်ဘရာ နေရာချထားမှုကိုဖန်တီးသည်။ Developer များကပြ problem နာ၏အကြောင်းရင်းကိုရှာဖွေရန်အလျင်အမြန်ရှာဖွေရန် SQL Query များကိုလည်းပြသသည်။
စာမျက်နှာပေါ်ရှိအမှားအယွင်းများကိုပြသသည့်အပြင်ဖိုင်များမှတ်တမ်းများကိုမှတ်တမ်းတင်ရန်အမှားအယွင်းများကိုမှတ်တမ်းတင်ရန်အလေ့အကျင့်လည်းဖြစ်သည်။ ထုတ်လုပ်မှုပတ် 0 န်းကျင်တွင်အထိခိုက်မခံသောဒေတာဘေ့စ်အမှားအယွင်းများကိုတိုက်ရိုက်ထိတွေ့ခြင်းကိုရှောင်ရှားသည်။
<?php
function logDatabaseError($conn) {
$errorCode = $conn->errno;
$errorMessage = $conn->error;
$query = $conn->last_query;
$timestamp = date("Y-m-d H:i:s");
$logMessage = "[$timestamp] အမှားကုဒ်: $errorCode, အမှားသတင်းစကား: $errorMessage, မေးမြန်း: $query\n";
file_put_contents("database_errors.log", $logMessage, FILE_APPEND);
}
$sql = "SELECT * FROM non_existing_table"; // အမှားရှာဖွေခြင်း
$result = $conn->query($sql);
if (!$result) {
logDatabaseError($conn); // မှတ်တမ်းတင်ရန်အမှားအယွင်းများကိုမှတ်တမ်းတင်ပါ
handleDatabaseError($conn); // လုပ်ငန်းစဉ်နှင့်ပြသရန်
}
?>
အထက်ပါကုဒ်သည် log file database_errors.log ကို log file ကိုသတင်းအချက်အလက်များကိုမည်သို့ရေးရမည်ကိုပြသသည်။ ဤနည်းအားဖြင့် developer များက database မေးမြန်းချက်အားလုံးကိုအသုံးပြုသူမှတိုက်ရိုက်ဖော်ထုတ်ရန်မလိုဘဲဆာဗာ၏မှတ်တမ်းဖိုင်တွင်ကြည့်ရှုနိုင်သည်။
MySQLI :: errno နှင့် mySqli :: အမှားအယွင်းများကို ပေါင်းစပ်ခြင်းအားဖြင့် developer များပြ problems နာများကိုလျင်မြန်စွာရှာဖွေရန်အတွက်အသေးစိတ်ဒေတာဘေ့စ် Query Promp စနစ်ကိုတည်ဆောက်နိုင်သည်။ ကျွန်ုပ်တို့သည်စနစ်၏ကြံ့ခိုင်မှုကိုသစ်ခုတ်ခြင်းအားဖြင့်ထုတ်လုပ်မှုပတ် 0 န်းကျင်တွင်အထိခိုက်မခံသောဒေတာဘေ့စ်အမှားအယွင်းများကိုမဖော်ထုတ်နိုင်ကြောင်းထပ်မံမြှင့်တင်နိုင်သည်။
ဤအမှားကိုင်တွယ်နည်းလမ်းသည်အထူးသဖြင့်ရှုပ်ထွေးသောဒေတာဘေ့စ်လုပ်ငန်းများနှင့်ရင်ဆိုင်ရသောအခါဖွံ့ဖြိုးတိုးတက်မှုနှင့် debugging ထိရောက်မှုကိုသိသိသာသာတိုးတက်စေနိုင်သည်။ သင်၏ system ၏လုံခြုံရေးနှင့်ထိန်းသိမ်းခြင်းကိုထပ်မံမြှင့်တင်လိုပါကဤအခြေခံနှင့် ပတ်သက်. ပိုမိုကောင်းမွန်သောမှတ်တမ်းခွဲခြမ်းစိတ်ဖြာခြင်းနှင့်အမှားစောင့်ကြည့်လေ့လာမှုများကိုသင်ထပ်ထည့်နိုင်သည်။