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

Syntax အမှားအယွင်းများနှင့်ဆက်သွယ်မှုအမှားများအကြားခြားနားချက်ကိုရှာဖွေရန် $ errno ကိုအသုံးပြုနည်း

M66 2025-05-29

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

1 ။ ဒေတာဘေ့စ်ဆက်သွယ်မှုအမှား

ဒေတာဘေ့စ်နှင့်ချိတ်ဆက်ရန်ကြိုးစားသည့်အခါဒေတာဘေ့စ်ဆက်သွယ်မှုအမှားများသည်များသောအားဖြင့်ဖြစ်ပွားလေ့ရှိသည်။ Database ဆာဗာသည်လိပ်စာ, အသုံးပြုသူအမည်, စကားဝှက်သို့မဟုတ်ဒေတာဘေ့စ်အမည်ရှိအမှားတစ်ခုရှိပါကဆက်သွယ်မှုသည်ကျရှုံးလိမ့်မည်။ ဤကိစ္စတွင် MySQLI :: $ errno သည် declat error code ကိုပြန်ပို့လိမ့်မည်, ဤကုဒ်အပေါ် အခြေခံ. ပြ problem နာကိုကျွန်ုပ်တို့ဆုံးဖြတ်နိုင်သည်။

ဥပမာ - ဒေတာဘေ့စ်ဆက်သွယ်မှုအမှား

 <?php
$host = 'localhost';  // ဒေတာဘေ့စ်ဆာဗာလိပ်စာ
$user = 'root';       // ဒေတာဘေ့စ်အသုံးပြုသူအမည်
$password = '';       // ဒေတာဘေ့စ်စကားဝှက်
$database = 'test';   // ဒေတာဘေ့စ်အမည်

// ဒေတာဘေ့စ် connection တစ်ခုဖန်တီးပါ
$conn = new mysqli($host, $user, $password, $database);

// ဆက်သွယ်မှုအောင်မြင်မှုရှိမရှိစစ်ဆေးပါ
if ($conn->connect_errno) {
    echo "ဆက်သွယ်မှုအမှား: " . $conn->connect_error;
    // အရerrnoအမှားအမျိုးအစားကိုဆုံးဖြတ်ပါ
    if ($conn->connect_errno == 1049) {
        echo "ဒေတာဘေ့စ်မတည်ရှိပါဘူး!";
    } elseif ($conn->connect_errno == 1045) {
        echo "မမှန်ကန်သောအသုံးပြုသူအမည်သို့မဟုတ်စကားဝှက်!";
    }
    exit();
}

echo "ဒေတာဘေ့စကိုအောင်မြင်စွာဆက်သွယ်ပါ!";
?>

ဤဥပမာတွင်ဒေတာဘေ့စ်ဆက်သွယ်မှုပျက်ကွက်ပါက $ Conn-> Connect_ERRNO သည် အမှားကုဒ်တစ်ခုသို့ပြန်ပို့လိမ့်မည်။ ဥပမာအားဖြင့်, အမှားကုဒ် 1049 သည်ဒေတာဘေ့စ်သည်မတည်ရှိကြောင်းပြသည်။ အမှားကုဒ် 1045 သည်အသုံးပြုသူအမည်သို့မဟုတ်စကားဝှက်သည်မှားကြောင်းဖော်ပြသည်။ ဤအမှားကုဒ်များဖြင့်ပြ the နာကိုပိုမိုတိကျစွာရှာဖွေနိုင်သည်။

2 ။ SQL syntax အမှား

SQL Query များကိုသင် execute လုပ်သည့်အခါ SQL Syntax အမှားများသည်ရှာဖွေမှုကိုကျရှုံးစေနိုင်သည်။ ဤအချိန်တွင် MySQLI :: $ errno သည် SQL အမှားများနှင့်သက်ဆိုင်သောကုဒ်ကိုပြန်ပို့လိမ့်မည်။ အမှားကုဒ်ကိုအကဲဖြတ်ခြင်းအားဖြင့်၎င်းသည် SQL syntax အမှားသို့မဟုတ်အခြားအမှားအယွင်းများကိုအလျင်အမြန်ခွဲခြားနိုင်သည်။

ဥပမာ - SQL syntax အမှား

 <?php
$host = 'localhost';
$user = 'root';
$password = '';
$database = 'test';

// ဒေတာဘေ့စ် connection တစ်ခုဖန်တီးပါ
$conn = new mysqli($host, $user, $password, $database);

// တစ် syntax အမှား executeSQLမေးမြန်း
$sql = "SELEC * FROM users";  // အမှား的မေးမြန်း:SELEC ဖြစ်သင့်သည် SELECT
$result = $conn->query($sql);

// စစ်ဆေးကြည့်ရှုSQLကွပ်မျက်အောင်မြင်မှုရှိမရှိ
if ($result === false) {
    echo "SQLအမှား: " . $conn->error;
    // 判断အမှား代码
    if ($conn->errno == 1064) {
        echo "SQL语法အမှား!";
    }
    exit();
}

echo "မေးမြန်း成功!";
?>

ဤဥပမာတွင် SQL query တွင် syntax အမှား ( Selec Select လုပ် သင့်သည်) နှင့် $ Conno-> Errno သည် 1064 ပြန်ရောက်သည်။ MySQLI :: $ errno ၏တန်ဖိုးကိုအကဲဖြတ်ခြင်းအားဖြင့် SQL Query တွင်ပြ problems နာများကိုလျင်မြန်စွာရှာဖွေနိုင်သည်။

3 ။ အကျဉ်းချုပ်

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

  • Database connection error : connection_errno သည်များသောအားဖြင့် connection ကိုအောင်မြင်ပြီး Error Code (ဥပမာ, အသုံးပြုသူအမည်သို့မဟုတ်စကားဝှက်အမှားများမှကွဲပြားခြားနားသောဆက်သွယ်မှုအမှားများကိုခွဲခြားရန်အသုံးပြုသည်။

  • SQL syntax error error : SQL query နှင့်ပြ a နာတစ်ခုပြ a နာရှိသည့်အခါ $ Conno မှအမှားကုဒ်သည်သင် syntax အမှားများကိုအသိအမှတ်ပြုရန်ကူညီနိုင်သည်။

ဤအမှားနှစ်ခုမှားယွင်းသောနည်းလမ်းများသည်သင့်အားပိုမိုကောင်းမွန်သောစီမံခန့်ခွဲမှု,