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

MySQLI_STMT :: :: အမှားအယွင်းများကိုအလျင်အမြန်ရှာရန် $ အမှားကိုသုံးပါ

gitbox 2025-05-28

PHP ဖွံ့ဖြိုးတိုးတက်မှုတွင် SQL Queries များကိုအမှားပြုခြင်းသည်များသောအားဖြင့်ငြီးငွေ့ဖွယ်ကောင်းသောအလုပ်ဖြစ်သည်။ အထူးသဖြင့်စုံစမ်းမှုဖော်ပြချက်သည်ရှုပ်ထွေးပြီးအခြေအနေများနှင့်ဝါကျများပါ 0 င်သည်။ MySQLI_STMT :: $ အမှား ပိုင်ဆိုင်မှုသည် SQL Queries ရှိအမှားများကိုလျင်မြန်စွာရှာဖွေတွေ့ရှိရန်နှင့်ဖြေရှင်းရန်အတွက်အထူးသဖြင့် ဝါကျ အမှားများကိုလျင်မြန်စွာရှာဖွေတွေ့ရှိရန်အလွန်ထိရောက်သောကိရိယာတစ်ခုပေးသည်။

1 ။ MySQLI_STMMT အသုံးပြုခြင်း၏အခြေခံသဘောတရားများ :: $ အမှား

ပထမ ဦး စွာ MySQLI_STMM :: $ အမှားသည် MySQLI_STMT အတန်း၏ပိုင်ဆိုင်မှုဖြစ်သည်။ နောက်ဆုံး SQL ကြေငြာချက်ကိုကွပ်မျက်သည့်အခါဖြစ်ပေါ်လာသောအမှားအချက်အလက်များကိုသိမ်းဆည်းထားသည်။ ပုံမှန်အားဖြင့် MySQLI_STMT :: $ အမှားသည် အမှားတစ်ခုသို့ပြန်ပို့သည်။ SQL query execution နှင့်ပြ problem နာမရှိပါကအိမ်ခြံမြေသည်အချည်းနှီးသော string ကိုပြန်ပို့သည်။

၎င်းသည် MySQLI_STMT :: IFF $ error သည် အထူးသဖြင့်ဝါကျများ ကို ရှုပ်ထွေးသော debugging လုပ်သည့်အခါ SQL အမှားများကိုဖမ်းရန်အရေးကြီးသောကိရိယာတစ်ခုဖြစ်စေသည်။

2 ။ SQL Query တွင်အပိုဒ်အမှားများကို မည်သည့်နေရာတွင်တွေ့ရ လေ့ရှိသောမေးခွန်းများ

အဘယ် အပိုဒ်တွင်သာမန်အမှားများတွင်ပါဝင်သည်:

  • မမှန်ကန်သောကော်လံသို့မဟုတ်စားပွဲတင်အမည်

  • မှားယွင်းသောနှိုင်းယှဉ်ပါ operator (ဥပမာ == အစား == ကို သုံး. )

  • မှားယွင်းသော syntax (e.g. ပျောက်ဆုံးနေသောကွင်းခတ်)

  • မသင့်လျော်သောဒေတာအမျိုးအစားနှိုင်းယှဉ်ခြင်း (ထိုကဲ့သို့သောကြိုးများနှင့်နှိုင်းယှဉ်ခြင်းကဲ့သို့သော)

ဤအမှားများကိုများသောအားဖြင့်အထူးသဖြင့် SQL query ထုတ်ပြန်ချက်များသည်ကြာရှည်စွာရွေ့လျားနေသည့်အချိန်တွင်အလွယ်တကူမတွေ့ရှိနိုင်ပါ။

3 ။ MySQLI_STMMT သုံးပြီး မည်သည့် အပိုဒ်ကိုနေရာချခြင်းအတွက်အမှားအယွင်းရှိသည်

Debug SQL Queries မှ SQL Queryies သို့ဆင်းသက်လာပြီး MySQLI_STMMT မှတစ်ဆင့် အပိုဒ် အမှားများကိုရှာဖွေသည်။

3.1 ဒေတာဘေ့စ်ဆက်သွယ်မှုနှင့်ပြင်ဆင်မှုထုတ်ပြန်ချက်များကိုတည်ဆောက်ခြင်း

ပထမ ဦး စွာ MySQLI ဒေတာဘေ့စ် connection တစ်ခုကိုဖန်တီးပြီး SQL ကြေငြာချက်တစ်ခုကိုပြင်ဆင်ပါ။

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

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

// ကြိုတင်ပြင်ဆင်မှုများ
$stmt = $mysqli->prepare("SELECT * FROM users WHERE username = ? AND age > ?");

if ($stmt === false) {
    die("ကြေညာချက်ကိုပြင်ဆင်ရန်ပျက်ကွက်: " . $mysqli->error);
}
?>

3.2 parameters တွေကို bind နှင့်ထုတ်ပြန်ချက်များကို executes

ထို့နောက်ကျွန်ုပ်တို့သည်စုံစမ်းမှုဆိုင်ရာသတ်မှတ်ချက်များကိုချည်နှောင်ပြီးကြေညာချက်ကိုအကောင်အထည်ဖော်သည်။ ဤတွင်ကျွန်ုပ်တို့သည်တရားမ 0 င်အသက်အရွယ်ကိုဖြတ်သန်းခြင်းကဲ့သို့သောအပိုဒ်အမှားကို မည်သည့် နေရာတွင်နေရာ၌ ရှိ သည့်နေရာတွင်တမင်တကာပြုလုပ်နိုင်သည်။

 <?php
$username = "john_doe";
$age = "twenty";  // ဤတွင်ကျွန်ုပ်တို့သည်အသက်အရွယ်ကို string ကိုတမင်တကာသတ်မှတ်ထားသည်,နံပါတ်များမဟုတ်ပါ

$stmt->bind_param("si", $username, $age);

$stmt->execute();
?>

3.3 အမှားများကိုစစ်ဆေးပါ

SQL query ကိုကွပ်မျက်ပြီးနောက် SQL ကြေငြာချက်ကို MySQLI_STMT :: $ အမှားကို အောင်မြင်စွာအကောင်အထည်ဖော်နိုင်ခြင်းရှိမရှိစစ်ဆေးနိုင်သည်။ အမှားတစ်ခုဖြစ်ပါက၎င်းသည်အသေးစိတ်အမှားအယွင်းကိုပြန်ပို့ပေးလိမ့်မည်။

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

ဤအချက်မှာ $ stmt-> အမှားသည် အောက်ပါနှင့်ဆင်တူသောအမှားသတင်းစကားကိုထုတ်ပေးလိမ့်မည်။

 SQL အမှား: Unknown column 'twenty' in 'where clause'

Error Message မှအမှားတစ်ခုအနေဖြင့် အသက်အရွယ် ရှိအမှားတစ်ခုဖြစ်ပွားသည့်အမှားတစ်ခုဖြစ်ပွားခဲ့ပြီးအ 0 င် string သည်တရားဝင်နံပါတ်မဟုတ်ပါ။

4 ။ အခြား debugging ကျွမ်းကျင်မှု

MySQLI_STMT :: $ အမှားအယွင်းများ အပြင်သင်အပိုဆောင်း debugging အဆင့်အချို့ကိုယူနိုင်သည်။

  • ပြည့်စုံသော SQL query ကိုပုံနှိပ်ခြင်း - တစ်ခါတစ်ရံ SQL Query များကိုကိုယ်တိုင်ကြည့်ရှုခြင်းသည်နောက်တဖန် debug လုပ်ရန်ထိရောက်သောနည်းလမ်းဖြစ်သည်။ MySQLI သည် ကွင်းဆင်းမေးမြန်းမှုထုတ်ပြန်ချက်များအရအပများကိုတိုက်ရိုက်ပံ့ပိုးပေးသော်လည်း,

  • MySQL အမှားမှတ်တမ်းကိုကြည့်ပါ ။ ဒေတာဘေ့စ်ဆာဗာကိုထောက်ခံပါက MySQL အမှားမှတ်တမ်းများကိုသင်ကြည့်နိုင်သည်။ များသောအားဖြင့် SQL အမှားများအကြောင်းအသေးစိတ်ပါ 0 င်သည်။

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

MySQLI_STMT :: $ error property, PHP developer များသည် SQL Queries ကိုကွပ်မျက်သည့်အခါ ဝါကျများ ကိုနေရာချသည့်နေရာများတွင်အမှားများကိုလျင်မြန်စွာဖမ်းယူနိုင်သည်။ ၎င်းသည်ရှုပ်ထွေးသောရှာဖွေမှုထုတ်ပြန်ချက်များအတွက်အထူးအရေးကြီးသည်။ ကျိုးကြောင်းဆီလျော်သောအမှားကိုင်တွယ်ခြင်းနှင့် debugging ကျွမ်းကျင်မှုများကိုပေါင်းစပ်ခြင်းနှင့် debugging ကျွမ်းကျင်မှုများကိုထိရောက်စွာတိုးတက်စေပြီးဘုံ SQL အမှားများကိုရှောင်ရှားနိုင်သည်။