လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Errno ကိုသုံးရန် $ errno ကိုသုံးရန် Primary Key Key DRESER (အမှားနံပါတ် 1062)

Errno ကိုသုံးရန် $ errno ကိုသုံးရန် Primary Key Key DRESER (အမှားနံပါတ် 1062)

M66 2025-06-02

PHP တွင် MySQL databases များကိုအသုံးပြုသောအခါဒေတာများကိုထည့်သွင်းသောအခါသင်သည်ပုံမှန်အမှားများကိုသင်ကြုံတွေ့ရနိုင်သည်။ ၎င်းတို့အနက်မှတစ်ခုမှာအဓိကအဓိကအဓိကပ conflict ိပက်ခအမှားတစ်ခုဖြစ်ပြီး၎င်းသည်လက်ရှိအဓိကအဓိကတန်ဖိုးတန်ဖိုးတစ်ခုကိုထည့်သွင်းရန်ကြိုးစားသည့်အခါ MySQL သည်အမှားတစ်ခုပြန်ပေးရန်,

MySQLI extension ကိုအသုံးပြုသောအခါဤအမှားများကို MySQLI :: errno မှတဆင့်ဖမ်းမိနိုင်သည်။ MySQLI :: errno attribute သည်နောက်ဆုံး MySQL query မှပြန်လာသောအမှားနံပါတ်ကိုသိုလှောင်ထားသည်။ ဒီပစ္စည်းဥစ်စာပိုင်ဆိုင်မှုမှတစ်ဆင့်ကျွန်ုပ်တို့သည်မူလအဓိကသော့ချက်ပ conflicts ိပက်ခများကိုအလွယ်တကူရှာဖွေတွေ့ရှိနိုင်ပြီး၎င်းတို့အားကိုင်တွယ်နိုင်သည်။

ဒေတာထည့်သွင်းသည့်အခါပွတ်မ်အဓိကအမှားများကိုမည်သို့ဖမ်းယူရမည်ကိုပြသည့်ဥပမာဥပမာတစ်ခုမှာအချက်အလက်များကိုထည့်သွင်းသောအခါ (အမှားနံပါတ် 1062)

နမူနာကုဒ်:

 <?php
// ဒေတာဘေ့စ် connection configuration ကို
$servername = "localhost";
$username = "root";
$password = "password";
$dbname = "my_database";

// ဆက်သွယ်မှုတစ်ခုဖန်တီးပါ
$conn = new mysqli($servername, $username, $password, $dbname);

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

// ဒေတာထည့်ပါ SQL အသေအချာပေြာဆိုချက်
$sql = "INSERT INTO users (id, username) VALUES (1, 'new_user')";

// ကရိယာတန်းဆာ SQL မေးမြန်း
if ($conn->query($sql) === TRUE) {
    echo "အသစ်သောစံချိန်တင်သွင်း";
} else {
    // ဒါမိတ္တူပွားအဓိကသော့ချက်အမှားလားစစ်ဆေးပါ(အမှားနံပါတ် 1062)
    if ($conn->errno == 1062) {
        echo "အမှား: အဓိကအဓိကတန်ဖိုးကိုပုံတူပွား。";
    } else {
        echo "အမှား: " . $conn->error;
    }
}

// ဆက်သွယ်မှုကိုပိတ်ပါ
$conn->close();
?>

code parsing:

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

  2. SQL Insert ထုတ်ပြန်ချက် - သုံးစွဲသူများ စားပွဲ၌စံချိန်တင်အသစ်တစ်ခုကိုထည့်သွင်းထားသည့်ရိုးရှင်းသောထည့်သွင်းမှုဖော်ပြချက်တစ်ခုကိုကျွန်ုပ်တို့ရေးသားခဲ့သည်။ ID ကော်လံသည်အဓိကသော့ချက်ဖြစ်သည်ဟုယူဆပြီး ID တန်ဖိုးသည် 1 ဖြစ်သည်။

  3. Execute SQL query : SQL ထည့်သွင်းမှုစစ်ဆင်ရေး ($ sql) မှတဆင့် SQL ထည့်သွင်းမှုပြုလုပ်ပါ။ အကယ်. သွင်းသည်အောင်မြင်လျှင် Return Value သည် မှန်ကန် ပြီးထည့်သွင်းရန်အတွက်ချက်ချင်းသတင်းသည်အောင်မြင်သည်။

  4. Catch Error : အကယ်. သွင်းထည့်သွင်းမှုမအောင်မြင်ပါက (အဓိကအဓိကပ conflict ိပက်ခကဲ့သို့သော) ကို $ conn-> errno သည် အမှားနံပါတ်ကိုပြန်ပေးလိမ့်မည်။ ဒီဥပမာမှာ $ conno-> errno က 1062 ဖြစ်တယ်, ဒါက MySQL မှာရှိတဲ့အဓိကအဓိကအမှားတွေအတွက်အမှားနံပါတ်ဖြစ်တယ်။ အကယ်. ၎င်းသည်မိတ္တူပွားအဓိကသော့ချက်အမှားတစ်ခုဖြစ်ပါကကျွန်ုပ်တို့သည် "မှေးမှိန်သောအဓိကတန်ဖိုး" ကိုအထူးရေးသောအမှားအယွင်းတစ်ခုရှိသည်။ အကယ်. ၎င်းသည်အခြားအမှားအယွင်းတစ်ခုဖြစ်ပါက MySQL မှပြန်လာသောအမှားမက်ဆေ့ခ်ျကိုကျွန်ုပ်တို့ပြသမည်။

  5. Collection Connection : ခွဲစိတ်ကုသမှုပြီးဆုံးပြီးနောက်ဒေတာဘေ့စ်ဆက်သွယ်မှုကိုပိတ်ပြီးအရင်းအမြစ်များကိုဖြန့်ချိစေရန် $ conn-> close () ကို အသုံးပြုသည်။

အကျဉ်းချုပ်:

MySQLI :: $ errno ကို အသုံးပြု. MySQL အမှားများကိုအလွယ်တကူကိုင်တွယ်နိုင်ပြီးအထူးသဖြင့်မိတ္တူပွားသောအဓိကအဓိကအမှားများ (အမှားနံပါတ် 1062) ။ ဤနည်းလမ်းသည်ပရိုဂရမ်၏ကြံ့ခိုင်မှုကိုတိုးတက်စေပြီးမိတ္တူပွားများဖြစ်သော Primatical Keys မှဖြစ်ပေါ်လာသောပရိုဂရမ်များသို့မဟုတ်အမှားများကိုရှောင်ရှားရန်ကူညီသည်။

အကယ်. သင် processing logic ကိုပိုမိုတိုးတက်အောင်လုပ်လိုပါက Skipping she ခြင်းများကိုခုန်ချခြင်း, လက်ရှိမှတ်တမ်းများကိုအသစ်ပြောင်းခြင်းသို့မဟုတ်အသေးစိတ်အမှားအယွင်းများကိုပြန်ပို့ခြင်းကဲ့သို့သောပုံတူပွားများမိတ္တူကူးခြင်းများကိုဖမ်းယူသောအခါသင့်လျော်သောလုပ်ဆောင်မှုများပြုလုပ်နိုင်သည်။