PHP တွင် MySQL ဒေတာဘေ့စ်များကိုအသုံးပြုသောအခါ SQL Query များကိုကွပ်မျက်သည့်အခါအမှားတစ်ခုကြုံတွေ့ရနိုင်သည်။ ဤအမှားများကိုနေရာချထားရန်လွယ်ကူချောမွေ့စေရန် MySQLI :: $ errno မှပေးသောအမှားကုဒ်သည်ပျက်ကွက်မှု၏အကြောင်းရင်းကိုဆုံးဖြတ်ရန်နှင့်၎င်းကိုကိုင်တွယ်ရန်အသုံးပြုနိုင်သည်။ ဤဆောင်းပါးသည် MySQLI :: $ errno နှင့် SQL Execution ပျက်ကွက်အမျိုးအစားအမျိုးမျိုးကိုအလိုအလျောက်မည်သို့ခွဲခြားသတ်မှတ်ရမည်ကိုမိတ်ဆက်ပေးလိမ့်မည်။
MySQLI :: $ errno သည် မကြာသေးမီကကွပ်မျက်ခံရသော MySQL query ၏အမှားကုဒ်ပါ 0 င်သည့် attribute တစ်ခုဖြစ်သည်။ ၎င်းသည်ကွဲပြားခြားနားသောအမှားအယွင်းများကိုကိုယ်စားပြုသောကိန်းဂဏန်းတစ်ခုပြန်ပို့သည်။ ၎င်းသည် developer များအတွက်အလွန်အသုံးဝင်သည်။ SQL ကိုကွပ်မျက်ရာတွင်ပြ issues နာများကိုနေရာချထားရန်ကျွန်ုပ်တို့ကိုကူညီနိုင်သည်။
များသောအားဖြင့် MySQLI :: MySQLI :: MySQLI :: $ အမှားကို အတူတကွအသုံးပြုသည်။ အမှားတစ်ခုဖြစ်သောအမှားတစ်ခုဖြစ်သောအမှားတစ်ခုဖြစ်လာသောအခါအမှားတစ်ခုဖြစ်သောအမှားအယွင်းများကိုပြန်လည်ပေးလိမ့်မည်။ ဤအချက်အလက်မှတစ်ဆင့် SQL အမှားများကိုအညီကိုင်တွယ်နိုင်သည်။
ဤတွင်အများသုံး MySQL အမှားကုဒ်များနှင့်သူတို့၏အဓိပ္ပါယ်များရှိသည်။
အမှားကုဒ် | အမှားဖော်ပြချက် |
---|---|
1045 | ဝင်ရောက်ခွင့်ကိုငြင်းပယ်ခြင်း (ခွင့်ပြုချက်မရှိပါ) |
1064 | SQL syntax အမှား |
1146 | စားပွဲပေါ်မှာမတည်ရှိပါဘူး |
1054 | ကော်လံမရှိပါ |
1062 | ပုံတူပွားခြင်း (ထူးခြားသောကန့်သတ်ချက်ချိုးဖောက်ခြင်း) |
SQL Query များကိုသင် execute လုပ်သည့်အခါ MySQLI :: errno မှတစ်ဆင့်ဤအမှားကုဒ်များကိုသင်စစ်ဆေးနိုင်သည်။
ပထမ ဦး စွာ MySQL ဒေတာဘေ့စ်နှင့်ချိတ်ဆက်ထားသောဥပမာတစ်ခုလိုအပ်သည်, ပြီးနောက် SQL query query ကို execute လုပ်ပြီးအမှားတစ်ခုရှိမရှိစစ်ဆေးပါ။ ဒီမှာနမူနာကုဒ်တစ်ခုပါ။
<?php
$mysqli = new mysqli("localhost", "user", "password", "database");
if ($mysqli->connect_error) {
die("ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $mysqli->connect_error);
}
$query = "SELECT * FROM non_existent_table"; // ရည်ရွယ်ချက်ရှိရှိရေးသားထားသောမှားယွင်းသောစားပွဲပေါ်မှာအမည်
$result = $mysqli->query($query);
if (!$result) {
// စုံစမ်းမှုပျက်ကွက်လျှင်,အမှားကုဒ်များနှင့်သတင်းအချက်အလက်အမှားများကိုရယူပါ
echo "အမှားကုဒ်: " . $mysqli->errno . "<br>";
echo "အမှားသတင်းစကား: " . $mysqli->error . "<br>";
// 根据အမှားကုဒ်做不同的处理
switch ($mysqli->errno) {
case 1045:
echo "ဝင်ရောက်ခွင့်မရှိပါ,ကျေးဇူးပြု. ဒေတာဘေ့စ်အသုံးပြုသူ၏ခွင့်ပြုချက်များကိုစစ်ဆေးပါ。";
break;
case 1064:
echo "SQL Syntax အမှား,ကျေးဇူးပြု. စုံစမ်းမှု syntax ကိုစစ်ဆေးပါ。";
break;
case 1146:
echo "စားပွဲပေါ်မှာမတည်ရှိပါဘူး,ကျေးဇူးပြု. ဇယားအမည်ကိုစစ်ဆေးပါ。";
break;
case 1054:
echo "ကော်လံမရှိပါ,ကျေးဇူးပြု. ကော်လံအမည်ကိုစစ်ဆေးပါ。";
break;
case 1062:
echo "repries တွေကိုပြန်လုပ်ပါ,ထူးခြားသောကန့်သတ်ခြင်း၏ချိုးဖောက်မှု。";
break;
default:
echo "အခြားအမှားများ,ကျေးဇူးပြုပြီးစစ်ဆေးပါ。";
}
} else {
// အောင်မြင်သောစုံစမ်းမှု,အပြောင်းအလဲများရလဒ်များ
while ($row = $result->fetch_assoc()) {
echo "အချက်များ: " . $row['column_name'] . "<br>";
}
}
$mysqli->close();
?>
အထက်ပါကုဒ်တွင် SQL Execution ပျက်ကွက်ပါကအမှားကုဒ်နှင့်အမှားအယွင်းများကိုပထမဆုံးပုံနှိပ်ထုတ်ဝေလိမ့်မည်။ ထို့နောက် MySQLI :: $ errno ၏တန်ဖိုးကို အခြေခံ. ကျွန်ုပ်တို့သည် switch statement ကို ဖြတ်. အမှားအယွင်းများကိုဆုံးဖြတ်ပြီးအထူးအမှားအယွင်းများကိုပေးထားသည်။
MySQLI :: errno ၏အကျိုးသက်ရောက်မှုကိုရည်ရွယ်ချက်ရှိရှိအမှားများကိုမိတ်ဆက်ပေးခြင်းဖြင့်ပြုလုပ်နိုင်သည်။ ဥပမာအားဖြင့်အောက်ပါတို့အမှားများကိုသင်ကြိုးစားကြည့်နိုင်သည်။
Error ဇယားအမည် - query table မတည်ရှိပါက MySQL သည်အမှားကုဒ် 1146 (စားပွဲပေါ်မှာမရှိပါ)
အမှား SQL syntax: syntax အမှားအယွင်းများသည်များသောအားဖြင့် 1064 အမှားကုဒ်ကိုပြန်ပို့သည်။
ခွင့်ပြုချက်ပြ Proble နာ - ဒေတာဘေ့စ်အသုံးပြုသူသည်လုံလောက်သောခွင့်ပြုချက်မရှိပါကအမှားကုဒ် 1045 ကိုပြန်ပို့သည်။
စမ်းသပ်မှုအတွင်း MySQLI :: $ errno မှတစ်ဆင့်သက်ဆိုင်ရာအမှားကုဒ်များကိုသင်ပြုပြင်ရန် SQL quert station ်ဌာန်းချက်ကိုပြုပြင်နိုင်သည်။
ရှုပ်ထွေးသော SQL Queries တွင် URLs သို့မဟုတ်ပြင်ပဒေတာအရင်းအမြစ်များကိုအသုံးပြုခြင်းတွင်ပါ 0 င်နိုင်သည်။ အကယ်. ရှာဖွေမှုတွင်ပြင်ပအရင်းအမြစ်များပါ 0 င်ပါက URL သည်မှန်ကန်မှုရှိမရှိစစ်ဆေးရန်အောက်ပါနည်းလမ်းများကိုကျွန်ုပ်တို့အသုံးပြုနိုင်သည်။