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

MySQLI :: ပြင်ဆင်ခြင်း () အောင်မြင်မှုရှိမရှိဆုံးဖြတ်ရန် $ errno ကိုသုံးပါ

M66 2025-05-28

PHP တွင် MySQLI :: ပြင်ဆင်ပါ () သည် MySQL databases များကိုအသုံးပြုသောအခါ SQL ထုတ်ပြန်ချက်များကိုပြင်ဆင်ရန်အလွန်အရေးကြီးသောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ကိစ္စများစွာတွင်ကျွန်ုပ်တို့သည်ဒေတာဘေ့စ်စစ်ဆင်ရေးပျက်ကွက်လျှင် SQL ထုတ်ပြန်ချက်များကိုပြင်ဆင်ခြင်းသည်မမှားကြောင်းသေချာစေလိုပါသည်။ MySQLI :: $ errno သည် အမှားတစ်ခုရှိမရှိဆုံးဖြတ်ရန်ကျွန်ုပ်တို့အသုံးပြုနိုင်သည့် attribute တစ်ခုဖြစ်သည်။ ပြင်ဆင်မှု () နည်းလမ်းကိုအောင်မြင်စွာကွပ်မျက်ခံရခြင်းရှိမရှိဆုံးဖြတ်ရန်ကျွန်ုပ်တို့အားကူညီနိုင်သည်။

1 ။ MySQLI :: ပြင်ဆင်ပါ () ?

MySQLI :: ပြင်ဆင် () ပြင်ဆင်ခြင်း သည် SQL ထုတ်ပြန်ချက်များကိုကြိုတင်ထုတ်ပြန်ရန်အသုံးပြုသော function တစ်ခုဖြစ်သည်။ Preprocessing ၏အားသာချက်မှာ SQL Injection ကိုကာကွယ်နိုင်ရန်နှင့်ဒေတာဘေ့စ်လုပ်ငန်းများ၏စွမ်းဆောင်ရည်ကိုတိုးတက်စေနိုင်သည်။ အမှန်တကယ်အသုံးပြုမှုတွင် MySQL ဆာဗာ မှ parsed နှင့် optimized သော MySQL ဆာဗာသို့ SQL ထုတ်ပြန်ချက်များကို MySQL server သို့ပို့သည်။

ဥပမာအားဖြင့်, အောက်ပါကုဒ်သည် MySQLI :: SQL ကြေငြာချက်ပြင်ဆင်ရန်ပြင်ဆင်ရန် (ပြင်ဆင်ပါ) ကို မည်သို့အသုံးပြုရမည်ကိုပြသသည်။

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

// Check connection
if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: " . $mysqli->connect_error;
    exit();
}

$stmt = $mysqli->prepare("SELECT * FROM users WHERE email = ?");
?>

2 ။ MySQLI :: errno ကို သုံးပါ () ပြင်ဆင်ရန် () သည်အောင်မြင်မှုရှိမရှိဆုံးဖြတ်ရန်

MySQLI :: SQL ကြေငြာချက်တွင်အမှားတစ်ခုရှိလျှင်ပြင်ဆင်ပါ () ပြင်ဆင် ပါ

 <?php
// ပြင်ဆင်ထား SQL အသေအချာပေြာဆိုချက်
$stmt = $mysqli->prepare("SELECT * FROM users WHERE email = ?");

if ($stmt === false) {
    // လှျင် prepare() ပြန်လာ false,ဆိုလိုသည်မှာ SQL အသေအချာပေြာဆိုချက်有错误
    echo "MySQLi prepare failed. Error number: " . $mysqli->errno . "\n";
    echo "Error message: " . $mysqli->error . "\n";
} else {
    // လှျင် prepare() အောင်မြင်ခြင်း,နောက်ထပ်စစ်ဆင်ရေးလုပ်ဆောင်ပါ
    echo "SQL prepared successfully!\n";
}
?>

ဤဥပမာတွင် ပြင်ဆင်ပါ ကပြင်ဆင်ပါက ဒေါ်လာ MySQLI-> ERRNO သည် အမှားကုဒ်တစ်ခုသို့ပြန်ပို့လိမ့်မည်။ ပျက်ကွက်မှုအတွက်အကြောင်းပြချက်ကိုနားလည်ရန်ဤအမှားကုဒ်ကိုသင်အသုံးပြုနိုင်သည်။ $ MySQLI-> အမှားသည် developer များပြ problems နာများကိုလျင်မြန်စွာရှာဖွေရန်ကူညီရန်တိကျသောအမှားအချက်အလက်များကိုပေးသည်။

3 ။ သာမန် MySQLI :: $ errno အမှားကုဒ်

MySQLI :: ပြင်ဆင်ခြင်း () ကွပ်မျက်မှုမအောင်မြင်ပါက MySQLI :: $ errno သည် သုညတန်ဖိုးကိုသတ်မှတ်လိမ့်မည်။ ဤတွင်အချို့သောဘုံအမှားကုဒ်များကိုဒီမှာ:

  • 1049 : ဒေတာဘေ့စ်မရှိပါ။

  • 1054 : လယ်ကွင်းမရှိ (ဥပမာ, ရွေးချယ်ထားသည့်ကော်လံအမည်) သည်လွဲမှားစွာဖော်ပြထားသည်။

  • 1064 : SQL syntax အမှား။

  • 1146 : စားပွဲပေါ်မှာမတည်ရှိပါဘူး။

အထူးသဖြင့်ပြ problems နာများကိုဆုံးဖြတ်ရန်ဤအမှားကုဒ်များကိုသင်အသုံးပြုနိုင်သည်။

 if ($stmt === false) {
    switch ($mysqli->errno) {
        case 1049:
            echo "ဒေတာဘေ့စ်မတည်ရှိပါဘူး!";
            break;
        case 1064:
            echo "SQL Syntax အမှား!";
            break;
        default:
            echo "အမည်မသိအမှား: " . $mysqli->errno;
            break;
    }
}

4 ။ နမူနာကုဒ်ကိုဖြည့်ပါ

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

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

// ပြင်ဆင်ထား SQL အသေအချာပေြာဆိုချက်
$stmt = $mysqli->prepare("SELECT * FROM users WHERE email = ?");

if ($stmt === false) {
    // လှျင် prepare() ပြန်လာ false,အမှားမက်ဆေ့ခ်ျကိုပုံနှိပ်ပါ
    echo "MySQLi prepare failed. Error number: " . $mysqli->errno . "\n";
    echo "Error message: " . $mysqli->error . "\n";
} else {
    // လှျင်အောင်မြင်ခြင်း
    echo "SQL prepared successfully!\n";
    $stmt->close();
}

$mysqli->close();
?>