လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> MySQLI :: errno ပြန်လာသော 0 သည်ပုံမှန်အတိုင်းဖြစ်သည်။

MySQLI :: errno ပြန်လာသော 0 သည်ပုံမှန်အတိုင်းဖြစ်သည်။

M66 2025-05-29

ဒေတာဘေ့စ်လုပ်ငန်းများအတွက် PHP ကိုအသုံးပြုသောအခါ MySQLI extension မှတဆင့် MySQL ဒေတာဘေ့စ်နှင့်အပြန်အလှန်ဆက်သွယ်လေ့ရှိသည်။ MySQL သည် ကြွယ်ဝသောအင်္ဂါရပ်များကိုပေးသည်။ အသုံးပြုသော attribute များထဲမှတစ်ခုမှာ database စစ်ဆင်ရေးအတွက်အမှားကုဒ်ကိုကိုယ်စားပြုသော errno ဖြစ်သည်။ အကယ်. MySQLI :: $ errno 0 င်ပြန်ရောက်သည်ဆိုပါကများသောအားဖြင့်အမှားအယွင်းမရှိပါ။ သို့သော်ပြန်လာ 0 ယ်ခြင်းသည်ဒေတာဘေ့စ်လည်ပတ်မှုနှင့်ပြ problem နာမရှိပါဟုဆိုလိုပါသလား။ ဤဆောင်းပါးသည်ဤပြ issue နာကိုအသေးစိတ်ဆွေးနွေးပါမည်။

1 ။ MySQLI :: $ errno မှ မိတ်ဆက်ခြင်း

PHP တွင် MySQLI :: $ errno သည် MySQLI အရာဝတ်ထု၏ပိုင်ဆိုင်မှုဖြစ်ပြီးနောက်ဆုံးဒေတာဘေ့စ်၏အမှားကုဒ်ကိုပြန်ပို့သည်။ အထူးသဖြင့်:

  • အကယ်. စစ်ဆင်ရေးအောင်မြင်မှုရှိပါကအမှားအယွင်းများမရှိပါက errno ၏တန်ဖိုးသည် 0 ဖြစ်လိမ့်မည်။

  • အကယ်. စစ်ဆင်ရေးမအောင်မြင်ပါက Errno သည် သုည error error code ကိုပြန်ပို့သည်။ အသေးစိတ်အမှားအချက်အလက်များရရန် MySQLI :: $ error attribute ကိုသုံးနိုင်သည်။

Code Perfection:

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

if ($mysqli->connect_errno) {
    echo "ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $mysqli->connect_error;
    exit();
}

$query = "SELECT * FROM users";
$result = $mysqli->query($query);

if ($mysqli->errno) {
    echo "အမှားအမှား: " . $mysqli->error;
} else {
    echo "အောင်မြင်သောစုံစမ်းမှု!";
}
?>

ဒီဥပမာမှာ query ဟာအောင်မြင်ခဲ့တယ်ဆိုရင် $ MySQLI-> ERRNO-> ERRNO- > ersqli-> ersqli- > ersqli-> errno သည် အမှားအယွင်းများနှင့်ပတ်သက်သောအချက်အလက်များပြန်ပို့ပေးလိမ့်မည်။

2 ။ errno သည် 0 င်ပြ problem နာမရှိဟုမဆိုလိုပါ

MySQLI :: $ errno သည် 0 င်သည်ဖြစ်ပြီးဒေတာဘေ့စ်လည်ပတ်မှုတွင်အမှားအယွင်းများမရှိဟုဆိုလိုသည်။ errno ပြန်လာရင်တောင်မှပြ problem နာရှိနေဆဲဖြစ်ရပ်တစ်ခုရှိနေဆဲဖြစ်နိုင်သည့်အခြေအနေအချို့ကိုဤတွင်ဖော်ပြထားသည်။

2.1 ဒေတာဘေ့စ်ဆက်သွယ်မှုသည်အောင်မြင်သော်လည်းစုံစမ်းမှုကြေညာချက်နှင့်အတူယုတ္တိဗေဒပြ problem နာရှိသည်

ဒေတာဘေ့စ် connection သည်အောင်မြင်သော်လည်းစုံစမ်းမှု SQL ကြေငြာချက်သည်ယုတ္တိနည်းသည်ယုတ္တိနည်းသည်မှားနိုင်သည်။ ဥပမာအားဖြင့်, query table ကိုမတည်ရှိပါဘူးသို့မဟုတ်ပြန်လာရလဒ်ကဗလာဖြစ်ပါတယ်။

ဥပမာ -

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

if ($mysqli->connect_errno) {
    echo "ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $mysqli->connect_error;
    exit();
}

$query = "SELECT * FROM non_existent_table";  // မတည်ရှိသည့်ဇယားတစ်ခုမေးမြန်းခြင်း
$result = $mysqli->query($query);

if ($mysqli->errno) {
    echo "အမှားအမှား: " . $mysqli->error;
} else {
    if ($result->num_rows == 0) {
        echo "ရှာမတွေ့ပါ!";
    } else {
        echo "အောင်မြင်သောစုံစမ်းမှု!";
    }
}
?>

ဤဥပမာတွင် MySQLI :: errno :: errno ပြန်လာပေမယ့် er errno ပြန်လာပေမယ့် query table ကိုမတည်ရှိပါဘူး, ဒါကြောင့်ဒေတာတကယ်ရှာမတွေ့ပါ။ အမှားကုဒ်မရှိပါကယုတ္တိဗေဒပြ problem နာရှိနေဆဲဖြစ်သည်။

2.2 သတိပေးသတင်းအချက်အလက် errno ကို ထိခိုက်လိမ့်မည်မဟုတ်ပါ

MySQL extension သည်သတိပေးစကားအချို့ကိုထုတ်ပေးသည်, သို့သော်ဤသတိပေးချက်များကို Errno မှသိမ်းဆည်းထားခြင်းမရှိပါ။ ဆိုလိုသည်မှာအချို့သောသတိပေးချက်များရှိလျှင်ပင် errno သည် 0 ဖြစ်ဆဲဖြစ်နိုင်သည်။

ဥပမာအားဖြင့်အချို့သောမေးမြန်းချက်များကိုကွပ်မျက်ခံရသောအခါ MySQL သည်အမှားတစ်ခုအစားသတိပေးချက်တစ်ခုထုတ်ပေးနိုင်သည်။ အကယ်. ၎င်းသည်သတိပေးချက်တစ်ခုသာပါက Errno သည် 0 င်နေဆဲဖြစ်သော်လည်း MySQL သည်သတိပေးချက်တစ်ခုပြန်ပို့လျှင်သင်သတိထားသင့်သည်။

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

if ($mysqli->connect_errno) {
    echo "ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $mysqli->connect_error;
    exit();
}

$query = "SELECT id FROM users LIMIT 10";  // ယူဆချက် users စားပွဲပေါ်မှာရှိပါတယ် id လယ်ကွင်း,သို့သော်အချို့သောအချက်အလက်များပျောက်ဆုံးနေသည်
$result = $mysqli->query($query);

if ($mysqli->errno) {
    echo "အမှားအမှား: " . $mysqli->error;
} else {
    echo "အောင်မြင်သောစုံစမ်းမှု!";
    // သတိပေးချက်ရှိရင်,လွန်နိုင်ပါတယ် `mysqli::$warnings` စစ်ဆေး
    $warnings = $mysqli->warnings;
    if ($warnings) {
        echo "သတိပေးစာ: " . $warnings->message;
    }
}
?>

3 ။ ဒေတာဘေ့စ်စစ်ဆင်ရေးနှင့်အတူပြ problems နာများရှိရန်ဘယ်လိုသေချာအောင်လုပ်နည်း?

MySQLI :: $ errno ပြန်လာသော 0 0 သည်များသောအားဖြင့်အမှားအယွင်းများကိုဆိုလိုသည်။ ဒေတာဘေ့စ်လည်ပတ်မှု၏သမာဓိကိုသေချာစေရန်အောက်ပါအစီအမံများကိုပြုလုပ်နိုင်သည်။

3.1 စုံစမ်းမှုရလဒ်များကိုစစ်ဆေးပါ

အမှားကုဒ်မရှိပါကပင်စုံစမ်းမှုသည်မျှော်လင့်ထားသည့်ရလဒ်ကိုပြန်ပို့ခြင်းရှိမရှိစစ်ဆေးပါ။ ဥပမာအားဖြင့် Select စုံစမ်းမှုသည်ဒေတာများကိုပြန်လည်ပေးပို့ရန် MySQLI :: Numrowrows ကို စစ်ဆေးနိုင်သည်။

3.2 MySQLI :: $ သတိပေးချက်များကို အသုံးပြုခြင်း

MySQLI ::-$ သတိပေးချက်များကို စစ်ဆေးခြင်းအားဖြင့်သင်သည်အလားအလာရှိသောပြ issues နာများပျောက်ဆုံးနေသည်ကိုသေချာစေရန်အတွက်အလားအလာရှိသောသတိပေးချက်များကိုသင်ဖမ်းယူနိုင်သည်။

3.3 Try-catch ခြွင်းချက်ကိုင်တွယ်ခြင်းကိုင်တွယ်ပါ

MySQLI သည် ခြွင်းချက်များကိုသူ့ဟာသူမချထားပါ။ အမှားအယွင်းများကိုပိုမိုကောင်းမွန်စွာကိုင်တွယ်ရန် MySQLI_REPOREPORE (MySQLI_REPORT_SPORTICT) ကို setting လုပ်ခြင်းဖြင့်ခြွင်းချက်များကိုချမှတ်နိုင်သည်။

ဥပမာ -

 <?php
mysqli_report(MYSQLI_REPORT_STRICT);

try {
    $mysqli = new mysqli("localhost", "user", "password", "database");
    $query = "SELECT * FROM users";
    $result = $mysqli->query($query);
    
    // လုပ်ငန်းစဉ်မေးမြန်းချက်ရလဒ်များ
} catch (mysqli_sql_exception $e) {
    echo "အမီလိုက်ခြွင်းချက်: " . $e->getMessage();
}
?>

ဤနည်းအားဖြင့်သင်သည်ချွင်းချက်များကိုဖမ်းယူနိုင်ပြီးဒေတာဘေ့စ်စစ်ဆင်ရေးပျက်ကွက်သည့်အချိန်နှင့်အညီ၎င်းတို့ကိုလုပ်ဆောင်နိုင်သည်။

နိဂုံးချုပ်အားဖြင့်

MySQLI :: $ errno ပြန်လာသည် Database စစ်ဆင်ရေးအဆင့်တွင်အမှားမရှိပါကဒေတာဘေ့စ်စစ်ဆင်ရေးသည်လုံးဝပြ problems နာများနှင့်လုံးဝမသက်ဆိုင်ကြောင်းမဆိုလိုပါ။ ဒေတာဘေ့စ်လုပ်ငန်းများ၏မှန်ကန်မှုကိုသေချာစေရန် developer များသည်စုံစမ်းမှုရလဒ်များမှန်ကန်မှု, ဒေတာဘေ့စ်စစ်ဆင်ရေးများအပေါ်ယုံကြည်စိတ်ချရမှုနှင့်ကြံ့ခိုင်မှုကိုပြည့်စုံသောနည်းဖြင့်ဤအချက်များကိုစဉ်း စား. သာလျှင်ဤအချက်များကိုသာစဉ်းစားနိုင်သည်။