PHP application များကိုတီထွင်သောအခါ MySQLI extension များကိုဒေတာဘေ့ စ် လုပ်ငန်းများအတွက်အသုံးပြုလေ့ရှိသည်။ စစ်ဆင်ရေးကိုချောမွေ့လုပ်ဆောင်မှုကိုသေချာစေရန်, ကျွန်ုပ်တို့သည်ဖြစ်နိုင်ချေအမှားများနှင့် debug များကိုဖမ်းရန်လိုသည်။ MySQLI_STMT :: $ အမှားသည် အမှားအယွင်းများ ကိုပြုလုပ်ရာတွင်အသေးစိတ်အချက်အလက်များကိုရှာဖွေရန်အထောက်အကူပြုနိုင်သည့်အမှားများကိုဖမ်းရန်မှားယွင်းသောနည်းလမ်းတစ်ခုဖြစ်သည်။ ဤဆောင်းပါးသည် MySQLI_STMT ကို မည်သို့ အသုံးပြုရမည်ကိုမိတ်ဆက်ပေးမည်။
ပထမ ဦး စွာသင်သည် MySQL ဒေတာဘေ့စ်နှင့်ချိတ်ဆက်ပြီး အသစ်ပြောင်းခြင်း ကိုလုပ်ဆောင်ရန်အဆင်သင့်ဖြစ်နေကြောင်းယူဆကြပါစို့။ ဤတွင် update ကို စစ်ဆင်ရေး၏ရိုးရှင်းသောဥပမာဖြစ်ပါတယ်:
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test_db";
// ဆက်သွယ်မှုတစ်ခုဖန်တီးပါ
$conn = new mysqli($servername, $username, $password, $dbname);
// ဆက်သွယ်မှုကိုစစ်ဆေးပါ
if ($conn->connect_error) {
die("ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $conn->connect_error);
}
// အသုံးပြုသူအမည်ကိုအသုံးပြုသူစားပွဲ၌ Username ကို update လုပ်ချင်သည်ဆိုပါစို့
$sql = "UPDATE users SET username = ? WHERE id = ?";
$stmt = $conn->prepare($sql);
// ဒီဟာတွေကငါတို့ချည်နှောင်ချင်တဲ့ parameters တွေကိုယူဆတယ်
$new_username = "new_user";
$user_id = 1;
// parameters တွေကိုချည်ထား
$stmt->bind_param("si", $new_username, $user_id);
// Execution ကြေငြာချက်
$stmt->execute();
// အမှားများကိုစစ်ဆေးပါ
if ($stmt->error) {
echo "အသစ်ပြောင်းခြင်းမအောင်မြင်ပါ: " . $stmt->error;
} else {
echo "အောင်မြင်စွာအသစ်ပြောင်းခြင်း";
}
$stmt->close();
$conn->close();
?>
ဒေတာဘေ့စ်ကိုဆက်သွယ်ပါ MySQL ဒေတာဘေ့စ်နှင့်ချိတ်ဆက်ရန် MySQLI () ကို သုံးသည်။ ဆက်သွယ်မှုမအောင်မြင်ပါကပရိုဂရမ်သည်ပြသသည့်အမှားအယွင်းတစ်ခုဖြင့်အဆုံးသတ်သည်။
update ကို ကြေညာချက်ပြင်ဆင်ပါ အသုံးပြုသူများ စားပွဲ၌ Username field ကို update လုပ်ရန်အသုံးပြုသော update ကို မေးခွန်းတစ်ခုကိုကျွန်ုပ်တို့ဖန်တီးသည်။ စုံစမ်းမှုကိုတဆင့်ပြင်ဆင်ထား သလား။ placeholder ကို Bind_param () နည်းလမ်းမှတဆင့်အမှန်တကယ်တန်ဖိုးကိုချည်နှောင်ရန်ခွင့်ပြုသည်။
bind porteteters တွေကို ချည် parameters တွေကိုချည်ရန် bind_param () နည်းလမ်းကိုသုံးပါ။ ပထမ ဦး ဆုံး parameter သည်အမျိုးအစားနှင့်စပ်ဆိုင်သောအမျိုးအစား၏ string ကိုဆိုလိုသည်, SI ဆိုသည်မှာပထမ ဦး ဆုံး parameter သည် string text အမျိုးအစားတစ်ခုဖြစ်သည်။
Execution ကြေငြာချက်
Execute () နည်းလမ်းကိုပြင်ဆင်ထားသော SQL ထုတ်ပြန်ချက်များကိုအကောင်အထည်ဖော်ရန်အသုံးပြုသည်။ အကယ်. ကွပ်မျက်မှုမအောင်မြင်ပါကအမှားအယွင်းကို ဒေါ်လာ stmt-> အမှား တစ်ခုမှရရှိသည်။
SQL ထုတ်ပြန်ချက်များကိုအကောင်အထည်ဖော်သည့်အခါ $ stmt-> အမှား ပိုင်ဆိုင်မှုသည် Execution Deform အမှားကိုဖမ်းမိနိုင်သည်။ အကယ်. Update လည်ပတ်မှုမအောင်မြင်ပါက ဒေါ်လာ stmt-> အမှားသည် အသေးစိတ်အမှားအချက်အလက်များကိုပြန်ပို့ပေးနိုင်ပြီး,
if ($stmt->error) {
echo "အသစ်ပြောင်းခြင်းမအောင်မြင်ပါ: " . $stmt->error;
} else {
echo "အောင်မြင်စွာအသစ်ပြောင်းခြင်း";
}
ဒေတာဘေ့စ်စားပွဲတွင် ID 1 တွင်အသုံးပြုသူမရှိပါက Update လည်ပတ်မှုပြုလုပ်ရာတွင်အမှားတစ်ခုဖြစ်နိုင်ပြီးအမှားအယွင်းများသည်အောက်ပါအတိုင်းဖြစ်နိုင်သည်။
အသစ်ပြောင်းခြင်းမအောင်မြင်ပါ: You have an error in your SQL syntax
ဤအမှားအယွင်းသည် SQL Syntax အမှားများ, လယ်မြေအမည်အမှားများသို့မဟုတ်အခြားဒေတာဘေ့စ်နှင့်သက်ဆိုင်သောပြ issues နာများဖြစ်နိုင်သည်။
SQL syntax အမှား <br> <br> SQL ကြေငြာချက်တွင် syntax အမှားတစ်ခုရှိလျှင် $ stmt-> အမှားသည် "သင့်ရဲ့ SQL syntax တွင်အမှားတစ်ခုရှိသည်" နှင့်တူသောသတင်းအချက်အလက်များကိုပြန်ပို့လိမ့်မည်။ ၎င်းကိုနောက်ဆုံး SQL query ကိုပုံနှိပ်ခြင်းဖြင့်စစ်ဆေးနိုင်သည်။
echo "SQL မေးမြန်း: " . $sql;
SQL Query များကိုပုံနှိပ်ခြင်းဖြင့်ဒေတာဘေ့စ်မှရရှိသော SQL ထုတ်ပြန်ချက်များကိုတိုက်ရိုက်ကြည့်ရှုနိုင်ပြီး syntax အမှားများကိုရှာဖွေခြင်းနှင့်ပြုပြင်ခြင်းတို့ကိုတိုက်ရိုက်ကြည့်ရှုနိုင်သည်။
parameter သည် binding ပြ problem နာ <br> <br> bind_param တွင် () တွင်ခညျြနှောငျ () ()) တွင်ခညျြနှောငျပထမ ဦး ဆုံးဖြတ်သန်း Parameter သည်နှင့်မကိုက်ညီပါကအမှားတစ်ခုဖြစ်ပေါ်စေနိုင်သည်။ ဥပမာအားဖြင့်, string တစ်ခုသည် Integer အမျိုးအစားတစ်ခုလိုအပ်သည့်အငြင်းပွားမှုကိုပြုလုပ်ပါက $ stmt-> အမှားသည် သက်ဆိုင်ရာအမှားအယွင်းများကိုပြန်ပေးလိမ့်မည်။
ဒေတာဘေ့စ်ဆက်သွယ်မှုဆိုင်ရာပြ issues နာများ အကယ်. ဒေတာဘေ့စ်ဆက်သွယ်မှုသည်မအောင်မြင်ပါက $ Conn-> Connect_Error သည် connection ပျက်ကွက်မှု၏အမှားအယွင်းကိုပြန်လည်ပေးပို့လိမ့်မည်။ ဤအချိန်တွင်ဒေတာဘေ့စ်အိမ်ရှင်, အသုံးပြုသူအမည်, စကားဝှက်စသည့်ပြင်ဆင်မှုအချက်အလက်များကိုစစ်ဆေးရန်လိုအပ်သည်။
MySQLI_STMT :: အမှားအယွင်းများကို အသုံးပြု. အမှားများကို UPDATION စစ်ဆင်ရေးများတွင်ထိရောက်စွာဖမ်းယူနိုင်သည်။ ဤအချက်အလက်သည်ဤအချက်အလက်အပေါ် အခြေခံ. အမှားအယွင်းများ နှင့်နောက်ထပ် debugg မှတစ်ဆင့်အသေးစိတ်အမှားအချက်အလက်များကိုရယူရန်ဖြစ်သည်။ ဖွံ့ဖြိုးတိုးတက်မှုလုပ်ငန်းစဉ်အတွင်းအမီလိုက်အမှားများသည်လျှောက်လွှာတည်ငြိမ်မှုနှင့် debugging ထိရောက်မှုကိုသေချာစေရန်အရေးကြီးသောနည်းလမ်းတစ်ခုဖြစ်သည်။
ဤဆောင်းပါးသည် MySQLI_STMTT ကို မည်သို့အသုံးပြုရမည်ကိုပိုမိုနားလည်ရန်သင့်အားပိုမိုနားလည်သဘောပေါက်ရန်ကူညီပေးပါ ။ အကယ်. သင်သည်မည်သည့်ပြ problems နာကိုမဆိုသင်ကြုံတွေ့ရပါကတရားဝင်စာရွက်စာတမ်းများနှင့်တိုင်ပင်ဆွေးနွေးရန်သို့မဟုတ်ဆက်လုပ်ရန်သို့မဟုတ်ဆက်လုပ်ရန်အခမဲ့ဖြစ်ပါစေ။