လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> MySQLI_ERRORD နှင့်အတူ $ INFO အတွက်အကောင်းဆုံးအလေ့အကျင့်များ ()

MySQLI_ERRORD နှင့်အတူ $ INFO အတွက်အကောင်းဆုံးအလေ့အကျင့်များ ()

gitbox 2025-05-29

1 ။ MySQLI_ERROR ကိုမိတ်ဆက် ()

MySQLI_ERROR () သည် developer များအတွက်လုပ်ဆောင်ချက်များကိုကိုင်တွယ်ဖြေရှင်းသည့်အကျွမ်းတဝင်အမှားအများဆုံးအမှားအယွင်းတစ်ခုဖြစ်သည်။ ၎င်း၏ function သည်ဒေတာဘေ့စ်စစ်ဆင်ရေးပျက်ကွက်သောအခါအမှားအယွင်းကိုဖော်ပြသည့် string ကိုပြန်ပို့ရန်ဖြစ်သည်။ ဥပမာအားဖြင့်, မမှန်ကန်ကြောင်း SQL ထုတ်ပြန်ကြေငြာချက်ကိုလုပ်ဆောင်သောအခါ -

 $mysqli = new mysqli("localhost", "user", "password", "database");

$sql = "SELEC * FROM users"; // မစင်ကြယ်သောရေးသားထားသော SELECT
$result = $mysqli->query($sql);

if (!$result) {
    echo "SQL Execution မအောင်မြင်ပါ: " . mysqli_error($mysqli);
}

output သည်ဤကဲ့သို့သောအမှားတစ်ခုဖြစ်လိမ့်မည်။

 SQL Execution မအောင်မြင်ပါ: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELEC * FROM users' at line 1

ဒါက syntax အမှားအယွင်းများကိုနေရာချခြင်းအတွက်အထောက်အကူပြုသည်။


2 ။ MySQLI :: $ အချက်အလက်သည်အခြေအနေပိုမိုများပြားလာသည်

MySQLI_ERDRORRORRORRORRERE () , MySQLI :: SQL ကြေငြာချက်အောင်မြင်စွာကွပ်မျက်ခံရပြီးသည့်အခါအစီရင်ခံစာအချက်အလက်များသည် ကြေငြာချက်ရလဒ်များနှင့်ပတ်သက်သည့်အစီရင်ခံစာအချက်အလက်များနှင့်ဆက်စပ်မှုကိုပိုမိုဖော်ပြထားသည်။ အထူးသဖြင့် ထည့်သွင်းခြင်း , မွမ်းမံခြင်း , ဖျက်ခြင်း, ဖျက်ခြင်း စသည့်ထုတ်ပြန်ချက်များကိုအကောင်အထည်ဖော်သောအခါ,

ဥပမာအားဖြင့်:

 $mysqli = new mysqli("localhost", "user", "password", "database");

$sql = "UPDATE users SET status='active' WHERE last_login < '2024-01-01'";
$mysqli->query($sql);

echo "သက်ဆိုင်ရာအသေးစိတ်အချက်အလက်များ: " . $mysqli->info;

ဖြစ်နိုင်ချေရှိသောရလဒ်များမှာဆင်တူသည်။

 သက်ဆိုင်ရာအသေးစိတ်အချက်အလက်များ: Rows matched: 3  Changed: 2  Warnings: 0

ဆိုလိုသည်မှာစုစုပေါင်းအတန်း 3 တန်းနှင့်ကိုက်ညီသော်လည်း 2 တန်းသာသာပြုပြင်ခဲ့သည်။


3 ။ နှစ် ဦး စလုံး၏အသုံးပြုမှုအတွက်အကောင်းဆုံးအလေ့အကျင့်

SQL ထုတ်ပြန်ချက်များ ကို အကောင်အထည်ဖော်သည့်အခါဤလုပ်ဆောင်ချက်နှစ်ခုကိုအတူတကွသုံးနိုင်သည်။ အကယ်. ကွပ်မျက်အောင်မြင်မှုအောင်မြင်ပါက Execution အသေးစိတ်ကိုရရှိရန် MySQLI :: $ အချက်အလက်ကို သုံးပါ။ ဤနည်းလမ်းသည်နောက်ခံစီမံခန့်ခွဲမှုဘောင်ကွက်တွင်ပိတ်ဆို့ခြင်း,

ပုံမှန် encapsulation function ကိုအောက်ပါအတိုင်းဖြစ်သည် -

 function executeQuery($mysqli, $sql) {
    if ($mysqli->query($sql) === TRUE) {
        return [
            'success' => true,
            'info' => $mysqli->info
        ];
    } else {
        return [
            'success' => false,
            'error' => mysqli_error($mysqli)
        ];
    }
}

ခေါ်ဆိုမှုဥပမာ -

 $response = executeQuery($mysqli, "UPDATE users SET status='inactive' WHERE id IN (1,2,3)");

if ($response['success']) {
    echo "အောင်မြင်စွာအသစ်ပြောင်းခြင်း,အသေးစိတ်အချက်အလက်များသည်အောက်ပါအတိုင်းဖြစ်သည်:" . $response['info'];
} else {
    echo "အသစ်ပြောင်းခြင်းမအောင်မြင်ပါ,အမှားသတင်းစကား:" . $response['error'];
}

output ကို (အောင်မြင်မှုအပေါ်):

 အောင်မြင်စွာအသစ်ပြောင်းခြင်း,အသေးစိတ်အချက်အလက်များသည်အောက်ပါအတိုင်းဖြစ်သည်:Rows matched: 3  Changed: 3  Warnings: 0

output ကို (ပျက်ကွက်အပေါ်):

 အသစ်ပြောင်းခြင်းမအောင်မြင်ပါ,အမှားသတင်းစကား:Unknown column 'statuz' in 'field list'

4 ။ လက်တွေ့ကျသော application တစ်ခု၏ဥပမာများ

  1. ဒေတာရွှေ့ပြောင်းခြင်းနှင့်ထပ်တူပြုခြင်းလုပ်ငန်းများ <br> <br> အချက်အလက်အမြောက်အများကိုရေးသည့်အခါဒေတာများကိုအသစ်ပြောင်းခြင်းသို့မဟုတ်ကျော်သွားခြင်းရှိမရှိသိခြင်းသည်အလုပ်သည်အောင်မြင်မှုရှိ,

  2. Backstage Log System <br> အုပ်ချုပ်ရေးမှူးများအနေဖြင့်စစ်ဆင်ရေးတစ်ခုအောင်မြင်ရန်သို့မဟုတ်ပျက်ကွက်ခြင်းရှိမရှိကိုသိရန်လိုအပ်သော်လည်း၎င်းကိုအကျိုးသက်ရောက်သောမှတ်တမ်းများကိုနားလည်ရန်လည်းလိုအပ်သည်။

  3. အလိုအလျောက်စမ်းသပ်ခြင်း <br> အချို့သောအတန်းများသည်အကျိုးသက်ရောက်မည်ဟုမျှော်လင့်ရသည်ဆိုပါကဤလုပ်ဆောင်ချက်နှစ်ခုကိုပေါင်းစပ်ခြင်းအားဖြင့် SQL ထုတ်ပြန်ချက်များမှန်ကန်မှုကိုအတည်ပြုနိုင်သည်။