ဖွံ့ဖြိုးတိုးတက်မှုလုပ်ငန်းစဉ်အတွင်းအမှားအယွင်းများသည် Database Interaction တွင်မကြာခဏဖြစ်ပွားလေ့ရှိပြီးဤအမှားများကိုမည်သို့ဖမ်းဆီးနိုင်ပြီး debug devers လုပ်သားများလုပ်ရမည်ဟူသောနည်းစနစ်များထဲမှတစ်ခုဖြစ်သည်။ PHP တွင် MySQLI extension သည်ဒေတာဘေ့စ်မေးမြန်းချက်များကိုလိုက်နာရန်အလွန်အဆင်ပြေသောနည်းလမ်းဖြစ်သည်။ ၎င်းတို့အနက် MySQLI_STMT :: $ အမှား သည်အသုံး 0 င်သောထုတ်ပြန်ချက်များကိုအကောင်အထည်ဖော်သည့်ကာလအတွင်းအမှားသတင်းအချက်အလက်များကိုရယူရန်ကူညီနိုင်သည့်အလွန်အသုံးဝင်သောပစ္စည်းတစ်ခုဖြစ်သည်။
ဤဆောင်းပါးသည် MySQLI_STMT :: MySQLI Queries ရှိအမှားများကိုဖမ်းရန်နှင့် debug ကိုရှာဖွေရန်နှင့်၎င်းတို့ကိုအမှန်တကယ်ကုဒ်နမူနာများမှတစ်ဆင့်မည်သို့အသုံးပြုရမည်ကိုပိုမိုနားလည်ရန်ကူညီပေးပါမည်။
MySQLI_STMM :: $ အမှားသည် MySQLI ရှိ MySQLI_STMT အတန်းအစား၏ဂုဏ်သတ္တိများဖြစ်သည်။ Preprocessing Statement ၏လတ်တလောကွပ်မျက်မှု ( MySQLI_STMT ) ၏လတ်တလောကွပ်မျက်မှုကြောင့်ဖြစ်ပေါ်လာသောအမှားအယွင်းကိုပြန်လည်ရရှိခဲ့သည်။ အကယ်. အမှားမရှိပါကအကန့်အသတ်တွင်အချည်းနှီးသော string ကိုပြန်ပို့သည်။
ဒေတာဘေ့စ်စစ်ဆင်ရေးများတွင်အမှားအယွင်းများကိုဖမ်းယူခြင်း, MySQLI_STMT :: $ အမှားသည် ဤအမှားများကိုဖမ်းရန်လွယ်ကူသောနည်းလမ်းတစ်ခုကိုပေးသည်။
ဒေတာဘေ့စ် connection တစ်ခုတည်ဆောက်ပါ
ပထမ ဦး စွာ MySQLI အတန်းမှတစ်ဆင့်ဒေတာဘေ့စ်နှင့်ဆက်သွယ်မှုကိုတည်ဆောက်ရန်လိုအပ်သည်။
<?php
$host = 'localhost';
$username = 'root';
$password = '';
$database = 'test_db';
// ဒေတာဘေ့စ် connection တစ်ခုဖန်တီးပါ
$conn = new mysqli($host, $username, $password, $database);
// ဆက်သွယ်မှုအောင်မြင်မှုရှိမရှိစစ်ဆေးပါ
if ($conn->connect_error) {
die("ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $conn->connect_error);
}
?>
SQL ထုတ်ပြန်ချက်များကိုပြင်ဆင်ပါ
နောက်တစ်ခုက SQL ကြေငြာချက်ကိုပြင်ဆင်ရန်အတွက် MySQLI_PREPATE () function ကို အသုံးပြု. ကြေညာချက်ကိုအောင်မြင်စွာပြင်ဆင်ခြင်းရှိမရှိစစ်ဆေးသည်။
<?php
$sql = "INSERT INTO users (username, email) VALUES (?, ?)";
$stmt = $conn->prepare($sql);
if (!$stmt) {
die("SQL ထုတ်ပြန်ကြေငြာချက်ပြင်ဆင်မှုမအောင်မြင်ပါ: " . $conn->error);
}
?>
parameters တွေကိုချည်ထား
MySQLI တွင်ကျွန်ုပ်တို့သည် bind_param () function မှတဆင့် SQL Query တွင် parameters များကို parameters တွေကို parameters တွေကို parameters တွေကို parameters တွေကို parameters တွေကိုချည်နှောင်နိုင်တယ်။ ချည်နှောင်ထားသော parameter type အမျိုးအစားသည်မျှော်လင့်ထားသည့်အမျိုးအစားနှင့်ကိုက်ညီကြောင်းသေချာပါစေ။
<?php
$username = 'john_doe';
$email = '[email protected]';
$stmt->bind_param("ss", $username, $email); // ပထမ ဦး ဆုံး parameter သည် "ss" string ကိုအမျိုးအစားနှစ်မျိုးကိုယ်စားပြု parameters တွေကို
?>
တစ် ဦး စုံစမ်းမှု execute နှင့်အမှားတစ်ခုဖမ်းယူပါ
ယခုကျွန်ုပ်တို့သည်ကြိုတင်သတ်မှတ်ထားသည့်ကြေညာချက်ကို execute လုပ်ရန်အဆင်သင့်ဖြစ်နေပြီ။ အကယ်. စုံစမ်းမှုကွပ်မျက်မှုမအောင်မြင်ပါကကျွန်ုပ်၏အသေးစိတ်အမှားအချက်အလက်များကို MySQLI_STMT :: $ အမှားကို ရယူနိုင်ပါသည်။
<?php
if (!$stmt->execute()) {
echo "အဆိုပါစုံစမ်းမှု execute မှမအောင်မြင်ပါ: " . $stmt->error;
} else {
echo "ဒေတာသွင်းအောင်မြင်စွာ!";
}
?>
MySQLI_STMT :: Debugging လုပ်တဲ့အခါဒေါ်လာအမှားဟာ အထူးသဖြင့် SQL Query တွေဟာမျှော်လင့်ထားသည့်အတိုင်းမမျှော်လင့်ထားသည့်အတိုင်းအလွန်အသုံးဝင်သည်။ MySQL ဒေတာဘေ့စ်ကအမှားသတင်းစကားကိုသင်ရရှိရန်ကူညီနိုင်သည်။ ဥပမာအား ဖြင့် , syntax အမှားတစ်ခုရှိပါကဇယားသည်မတည်ရှိပါက data အမျိုးအစားသည်မကိုက်ညီပါ,
ဥပမာအားဖြင့်ကျွန်ုပ်တို့သည်အမှား syntax ပါ 0 င်သောရှာဖွေမှုတစ်ခုကိုကျွန်ုပ်တို့လုပ်ဆောင်သည်ဆိုပါစို့။
<?php
$sql = "INSERT INTO users (username, email) VALUE (?, ?)";
$stmt = $conn->prepare($sql);
if (!$stmt) {
die("SQL ထုတ်ပြန်ကြေငြာချက်ပြင်ဆင်မှုမအောင်မြင်ပါ: " . $conn->error);
}
$stmt->bind_param("ss", $username, $email);
if (!$stmt->execute()) {
echo "အဆိုပါစုံစမ်းမှု execute မှမအောင်မြင်ပါ: " . $stmt->error; // အသေးစိတ်အမှားသတင်းအချက်အလက်ကိုဒီမှာပြလိမ့်မည်
}
?>
Execution ပျက်ကွက်တွင် $ stmt-> အမှားသည် အောက်ပါနှင့်ဆင်တူသောအမှားသတင်းစကားကိုပြန်ပို့နိုင်သည်။
အဆိုပါစုံစမ်းမှု execute မှမအောင်မြင်ပါ: Unknown column 'VALUE' in 'field list'
ဤအချက်ကကျွန်ုပ်တို့သည် SQL ကြေငြာချက်တွင်မှားယွင်းသော syntax ကိုအသုံးပြုနေသည်ဟုပြသပြီးမှန်ကန်သော syntax သည် တန်ဖိုးများ အစား တန်ဖိုးများ ဖြစ်သင့်သည်။
Syntax အမှား
အမှားသတိပေးချက်များ - အမည်မသိကော်လံ , သင်၏ SQL syntax တွင်အမှားတစ်ခုရှိသည် ။
WomeRound - ကော်လံအမည်များ, စားပွဲတင်အမည်များနှင့် SQL querw questwords ရှိသော့ချက်စာလုံးများမှန်ကန်စွာစာလုံးပေါင်းရှိမရှိစစ်ဆေးပါ။
ဒေတာအမျိုးအစားမတိုက်ဆိုင်
အမှားသတိပေးချက်များ - မမှန်မကန်ကိန်းတန်ဖိုး , ဒေတာကိုကော်လံအတွက် duncated ။
Womboxound - 0 င်လာသည့် parameter type အမျိုးအစားသည်ဒေတာဘေ့စ်စားပွဲရှိကော်လံအမျိုးအစားနှင့်ကိုက်ညီကြောင်းသေချာပါစေ။ ဥပမာအားဖြင့်, ကိန်းတစ်ခုဖြစ်လိမ့်မည်ဟုမျှော်လင့်ထားသည့်ကော်လံတစ်ခုသို့ string တစ်ခုသို့သွားသောအခါ MISITITE ၏အမှားတစ်ခုဖြစ်လိမ့်မည်။
ဆက်သွယ်မှုမအောင်မြင်ပါ
Error Prompt: MySQL server ပျောက်သွားပြီ ။
WomeRound: ဒေတာဘေ့စ် connection သည်အထူးသဖြင့်အချိန်ကြာမြင့်စွာအသုံးမပြုပါကစစ်ဆေးပါ။
MySQLI_STMT :: $ အမှားအယွင်းကို အသုံးပြု. MySQLI Query တွင်အမှားအယွင်းများကိုကျွန်ုပ်တို့ထိရောက်စွာဖမ်းယူနိုင်ခဲ့သည်။ ၎င်းသည် developer များပြ problems နာများကိုလျင်မြန်စွာရှာဖွေရန်သာမကကုဒ်များအား 0 င်နိုင်မှုနှင့်စွမ်းဆောင်နိုင်မှုကိုပိုမိုကောင်းမွန်စေသည်။ ဖွံ့ဖြိုးရေးလုပ်ငန်းစဉ်အတွင်းကောင်းမွန်သောအမှားကိုင်တွယ်မှုနှင့် debugging နည်းလမ်းများသည်တိုးတက်မှုကိုတိုးတက်စေရန်အတွက်သော့ချက်ဖြစ်သည်။ ဤဆောင်းပါးသည်သင့်ကိုပိုမိုကောင်းမွန်သောနားလည်မှုကိုပိုမိုနားလည်သဘောပေါက်ရန်နှင့်အသုံးပြုရန်ကူညီနိုင်လိမ့်မည်ဟုကျွန်ုပ်မျှော်လင့်ပါသည် ။