ဒေတာဘေ့စ်စစ်ဆင်ရေးများကိုပြုလုပ်သောအခါ MySQL databases များကိုအသုံးပြုပြီးအထူးသဖြင့် PHP developer များသည် MySQL databases များကို အသုံးပြု. PHP developer များမကြာခဏရှာဖွေမှုအမည်များကိုဖော်ပြခြင်းကြောင့်ဖြစ်သည်။ MySQL သည်အမှားအယွင်းများကိုပြန်ပို့နိုင်သော်လည်း MySQLI :: $ error error property နှင့်အတူဤပြ problems နာများကိုထိထိရောက်ရောက်ရှာဖွေတွေ့ရှိနိုင်သည်။
ဤဆောင်းပါးသည် MySQLI :: IFFECTESS ကို အသုံးပြု. Develing အမှားများကိုထိထိရောက်ရောက်စစ်ဆေးရန်အတွက် Develips Devices Developer များကရေးဆွဲသည့်အခါ developer များမှားယွင်းစွာရှာဖွေခြင်းကိုရှောင်ရှားရန်ဤဆောင်းပါးသည်ဤဆောင်းပါးကိုလေ့လာနိုင်သည်။
MySQLI လုပ်ငန်းများအတွက် MySQLI Extensions ကိုအသုံးပြုသောအခါ MySQLI :: $ အမှား သည်အလွန်အရေးကြီးသောပိုင်ဆိုင်မှုဖြစ်သည်။ ၎င်းသည် MySQL စစ်ဆင်ရေးအတွက်အမှားသတင်းစကားကိုပြန်ပို့သည်။ များသောအားဖြင့်မေးမြန်းချက်များပေါ်ပေါက်လာသောအခါပြ problems နာများပေါ်ပေါက်လာပါက (လယ်ကွင်းအမည်များ, စားပွဲများမတည်ရှိခြင်းစသည့်) မရှိပါက MySQLI :: $ error တွင် သက်ဆိုင်ရာအမှားအယွင်းများပါ 0 င်မည်ဖြစ်သည်။ ဒီအမှားအယွင်းကိုခွဲခြမ်းစိတ်ဖြာခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်ပြ the နာကိုပိုမိုထိရောက်စွာရှာဖွေပြီး၎င်းကိုပြင်ဆင်နိုင်သည်။
နယ်ပယ်အမည်များကိုပျက်ကွက်ခြင်းဆိုသည်မှာဒေတာဘေ့စ်စစ်ဆင်ရေးများတွင်ဘုံပြ problems နာများထဲမှတစ်ခုဖြစ်သည်။ ဥပမာအားဖြင့်, Selection Query တွင်လယ်ကွက်ကိုမှားယွင်းစွာစာလုံးပေါင်းပါက MySQL သည်မည်သည့်နေရာတွင်မတွေ့ရှိခဲ့ပါကအမှားအယွင်းတစ်ခုသို့ပြန်ပို့လိမ့်မည်။ ဤကိစ္စတွင် MySQLI :: $ အမှားတွင်အသေးစိတ်ဖော်ပြချက်ပါ 0 င်မည်။ ဤအမှားအယွင်းကိုခွဲခြမ်းစိတ်ဖြာခြင်းဖြင့် developer များသည်စာလုံးပေါင်းအမှားအယွင်းများကိုရှာဖွေတွေ့ရှိနိုင်ပြီး၎င်းတို့ကိုပြင်ဆင်နိုင်သည်။
ဥပမာအားဖြင့်ကျွန်ုပ်တို့တွင် Fields Username နှင့် Email ရှိသည့်စားပွဲ အသုံးပြုသူ ရှိသည်ဆိုပါစို့ ။
$result = $mysqli->query("SELECT usename FROM users");
if (!$result) {
echo "Error: " . $mysqli->error;
}
output ကိုဖြစ်လိမ့်မည်:
Error: Unknown column 'usename' in 'field list'
ဒီအမှားကနေသတင်းစကားကနေကျွန်တော်တို့ဟာ Field Usename မတည်ရှိဘူးဆိုတာကိုတွေ့နိုင်တယ်။ ယခုအချိန်တွင်သင်ပြ the နာကိုဖြေရှင်းရန် Username သို့ Username သို့ သာပြောင်းလဲရန်လိုအပ်သည်။
စာလုံးပေါင်းအမှားများကိုကိုယ်တိုင်စစ်ဆေးနေစဉ်အတွင်းကြီးမားသောစီမံကိန်းများအတွက်, လယ်ကွင်းအမည်များပိုမိုမြင့်မားသည်။ ဤလုပ်ငန်းစဉ်ကိုအလိုအလျောက်ရန် MySQLI :: $ အမှားအယွင်းများ နှင့်အချို့သောအရန်ယုတ္တိဗေဒကိုရှာဖွေတွေ့ရှိခြင်းနှင့်ပြုပြင်ခြင်းထိရောက်မှုကိုတိုးတက်စေရန်အသုံးပြုနိုင်သည်။
ပထမ ဦး စွာ MySQLI :: MySQLI :: MySQLI :: IFF $ အမည်အမှားသို့မဟုတ်အခြားအမှားအယွင်းတစ်ခုရှိမရှိဆုံးဖြတ်ရန် $ အမှားအယွင်းများ ကိုဖြည်ရန်လိုအပ်သည်။ ပြန်လာသောအမှားအယွင်းကို အခြေခံ. ၎င်းသည်စာလုံးပေါင်းအမှားလားဆိုတာဆုံးဖြတ်ပါ။
$result = $mysqli->query("SELECT usename FROM users");
if (!$result) {
$error = $mysqli->error;
if (strpos($error, 'Unknown column') !== false) {
// အမှားအကွက်အမည်ကိုထုတ်ယူပါ
preg_match("/'(.+?)'/", $error, $matches);
$incorrect_field = $matches[1];
echo "Field Name Misspelled:$incorrect_field\n";
// အခုအချိန်တွင်,သငျသညျပြင်ဆင်ချက်လုပ်ဖို့ developer ကိုထပ်မံအချက်ပြနိုင်ပါတယ်
} else {
// အခြားအမှားအယွင်းများကိုကိုင်တွယ်ပါ
echo "ဒေတာဘေ့စ်အမှား: $error";
}
}
ဤဥပမာတွင်အမှားအယွင်းရှိသည့်အမှားအယွင်းများတွင် strowos function မှတဆင့် "မသိသောကော်လံ" ဟူသောစကားလုံးပါ 0 င်သည်။ သို့ဆိုလျှင် developer များပြ the နာကိုရှာရန်ကူညီရန်ပုံမှန်အသုံးအနှုန်းများမှတစ်ဆင့်မှားယွင်းသောနေရာအမည်ကိုထုတ်ယူပါ။
စာလုံးပေါင်းအမှားများကိုပိုမိုနားလည်သဘောပေါက်ရန်နှင့်မှန်ကန်စွာပြင်ဆင်ရန်အတွက်မှန်ကန်သောအကွက်အမည်နှင့်မှားယွင်းသောအကွက်နှင့်မှားယွင်းသော field နာအမည်အကြားဆင်တူမှုကို အလားတူ လုပ်ဆောင်ချက်ဖြင့်တွက်ချက်နိုင်သည်။ ၎င်းသည်စာလုံးပေါင်း၏ဆင်တူမှုအပေါ် အခြေခံ. ပိုမိုကောင်းမွန်သောဆုံးမခြင်းအကြံပြုချက်များကိုပေးလိမ့်မည်။
function suggest_correct_field($incorrect_field, $table_name, $mysqli) {
// စားပွဲပေါ်မှာအားလုံးလယ်ကွင်းအမည်များကိုရယူပါ
$result = $mysqli->query("DESCRIBE $table_name");
if (!$result) {
echo "ဇယားဖွဲ့စည်းပုံသတင်းအချက်အလက်မရရှိနိုင်ခြင်း:".$mysqli->error;
return;
}
// အားလုံးလယ်ကွင်းအမည်များကိုရယူပါ
$fields = [];
while ($row = $result->fetch_assoc()) {
$fields[] = $row['Field'];
}
// နှိုင်းယှဉ်ခြင်းနှင့်အလားတူလယ်ကွင်းအမည်များကိုရှာပါ
$max_similarity = 0;
$suggested_field = null;
foreach ($fields as $field) {
similar_text($incorrect_field, $field, $similarity);
if ($similarity > $max_similarity) {
$max_similarity = $similarity;
$suggested_field = $field;
}
}
// တူညီသည်အလုံအလောက်မြင့်မားလျှင်,လယ်ပြင်အမည်ကိုပြင်ရန်အကြံပြုသည်
if ($max_similarity >= 80) {
echo "လယ်ပြင်အမည်ကိုပြင်ရန်အကြံပြုသည်为: $suggested_field\n";
} else {
echo "အလားတူလယ်ကွင်းအမည်များကိုရှာမရပါ,ကျေးဇူးပြု. အမှားများကိုစစ်ဆေးပါ。\n";
}
}
// Call ဥပမာ
suggest_correct_field('usename', 'users', $mysqli);
ဤနည်းလမ်းသည်ပထမ ဦး ဆုံးစားပွဲ၌ အသုံးပြုသူများ၏ အကွက်အားလုံးကိုရရှိသည်။ ထို့နောက်မှားယွင်းသောလယ်ကွင်းအမည်နှင့်နှိုင်းယှဉ်ရန် အလားတူ fatch function ကိုအသုံးပြုသည်။ (80% ကျော်တို့၏ဆင်တူမှုကဲ့သို့သော) တံခါးခုံကိုသတ်မှတ်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည် developer ကိုအနီးဆုံးမှန်ကန်သောလယ်ကွင်းအမည်ကိုအကြံပြုနိုင်သည်။
MySQLI :: MySQLI :: $ Misspelling For Detection အတွက်ဒေါ်လာအမှား တစ်ခုမှာကောင်းသောနည်းလမ်းဖြစ်သည်, အကောင်းဆုံးနည်းလမ်းမှာ Development Phase တွင်ကြိုတင်ကာကွယ်မှုများပြုလုပ်ရန်ဖြစ်သည်။ ဤတွင်အကြံပြုထားသောအလေ့အကျင့်အချို့ကိုဤတွင်ဖော်ပြထားသည်။
unified naming အသေးစိတ်ဖော်ပြချက်များ - အလားတူစာလုံးပေါင်းအမှားများကိုရှောင်ရှားရန်တသမတ်တည်းလယ်ကွင်းအမည်ရှိသတ်မှတ်ချက်များကိုဖော်ထုတ်ရန်။
Code Review : လယ်ကွင်းနာမည်အမှားများအခမဲ့ဖြစ်ကြောင်းသေချာစေရန်ပုံမှန်ကုဒ်ပြန်လည်သုံးသပ်ခြင်းများကိုပြုလုပ်သည်။
Orm (Object Repectoration Mapping Mapping Mapping) ကိုအသုံးပြုခြင်းသည် လက်စွဲစာလုံးပေါင်းအမှားအယွင်းများကိုရှောင်ရှားရန် Orm Tool သည် datab sprads နှင့် class properties များကိုအလိုအလျောက်မြေပုံများပြုလုပ်လေ့ရှိသည်။
MySQLI :: $ အမှား attribute များမှတဆင့် developer များသည် developer များဒေတာဘေ့စ်လုပ်ငန်းများ၌ developming စာလုံးပေါင်းအမှားများကိုအလွယ်တကူဖမ်းယူနိုင်ပြီး Developeries သည်အသိဉာဏ်ရှိရှာဖွေတွေ့ရှိမှုနှင့်အကြံပြုချက်များအားဖြင့်အချိန်မီပြ problems နာများကိုရှာဖွေတွေ့ရှိနိုင်သည်။ စာလုံးပေါင်းအမှားများကိုအလိုအလျောက်ရှာဖွေတွေ့ရှိခြင်းနှင့်ပြင်ဆင်ခြင်းသည်ထိရောက်သောနည်းဗျူဟာတစ်ခုဖြစ်သော်လည်းအကောင်းဆုံးနည်းလမ်းမှာကြိုတင်ကာကွယ်မှုများမှတစ်ဆင့်ထိုကဲ့သို့သောပြ problems နာများဖြစ်ပွားခြင်းကိုလျှော့ချရန်ဖြစ်သည်။
MySQLI :: $ အမှားအယွင်းများ မှတစ်ဆင့် Field Name အမှားများကိုမည်သို့စစ်ဆေးရမည်ကိုပိုမိုနားလည်သဘောပေါက်ရန်နှင့်မည်သည့်အဆင်ပြေမှုနှင့်လုံခြုံရေးအာမခံချက်များကိုပိုမိုနားလည်သဘောပေါက်ရန်,
သက်ဆိုင်သောတက်(ဂ်)များ:
mysqli