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

MySQLI_STMT ::: update လည်ပတ်မှုပျက်ကွက်သည့်အခါ $ အမှားအယွင်းများကိုအသုံးပြုသည်

gitbox 2025-05-29

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

1 ။ ဒေတာဘေ့စ်နှင့် update ကိုပြင်ဆင်ပါ

ပထမ ဦး စွာသင်သည် 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();
?>

2 ။ ကုဒ်ကိုရှင်းပြပါ

  1. ဒေတာဘေ့စ်ကိုဆက်သွယ်ပါ MySQL ဒေတာဘေ့စ်နှင့်ချိတ်ဆက်ရန် MySQLI () ကို သုံးသည်။ ဆက်သွယ်မှုမအောင်မြင်ပါကပရိုဂရမ်သည်ပြသသည့်အမှားအယွင်းတစ်ခုဖြင့်အဆုံးသတ်သည်။

  2. update ကို ကြေညာချက်ပြင်ဆင်ပါ အသုံးပြုသူများ စားပွဲ၌ Username field ကို update လုပ်ရန်အသုံးပြုသော update ကို မေးခွန်းတစ်ခုကိုကျွန်ုပ်တို့ဖန်တီးသည်။ စုံစမ်းမှုကိုတဆင့်ပြင်ဆင်ထား သလား။ placeholder ကို Bind_param () နည်းလမ်းမှတဆင့်အမှန်တကယ်တန်ဖိုးကိုချည်နှောင်ရန်ခွင့်ပြုသည်။

  3. bind porteteters တွေကို ချည် parameters တွေကိုချည်ရန် bind_param () နည်းလမ်းကိုသုံးပါ။ ပထမ ဦး ဆုံး parameter သည်အမျိုးအစားနှင့်စပ်ဆိုင်သောအမျိုးအစား၏ string ကိုဆိုလိုသည်, SI ဆိုသည်မှာပထမ ဦး ဆုံး parameter သည် string text အမျိုးအစားတစ်ခုဖြစ်သည်။

  4. Execution ကြေငြာချက်
    Execute () နည်းလမ်းကိုပြင်ဆင်ထားသော SQL ထုတ်ပြန်ချက်များကိုအကောင်အထည်ဖော်ရန်အသုံးပြုသည်။ အကယ်. ကွပ်မျက်မှုမအောင်မြင်ပါကအမှားအယွင်းကို ဒေါ်လာ stmt-> အမှား တစ်ခုမှရရှိသည်။

3 ။ အမှားအယွင်းများနှင့် debug ကိုဖမ်းပါ

SQL ထုတ်ပြန်ချက်များကိုအကောင်အထည်ဖော်သည့်အခါ $ stmt-> အမှား ပိုင်ဆိုင်မှုသည် Execution Deform အမှားကိုဖမ်းမိနိုင်သည်။ အကယ်. Update လည်ပတ်မှုမအောင်မြင်ပါက ဒေါ်လာ stmt-> အမှားသည် အသေးစိတ်အမှားအချက်အလက်များကိုပြန်ပို့ပေးနိုင်ပြီး,

 if ($stmt->error) {
    echo "အသစ်ပြောင်းခြင်းမအောင်မြင်ပါ: " . $stmt->error;
} else {
    echo "အောင်မြင်စွာအသစ်ပြောင်းခြင်း";
}

နမူနာ output ကို:

ဒေတာဘေ့စ်စားပွဲတွင် ID 1 တွင်အသုံးပြုသူမရှိပါက Update လည်ပတ်မှုပြုလုပ်ရာတွင်အမှားတစ်ခုဖြစ်နိုင်ပြီးအမှားအယွင်းများသည်အောက်ပါအတိုင်းဖြစ်နိုင်သည်။

 အသစ်ပြောင်းခြင်းမအောင်မြင်ပါ: You have an error in your SQL syntax

ဤအမှားအယွင်းသည် SQL Syntax အမှားများ, လယ်မြေအမည်အမှားများသို့မဟုတ်အခြားဒေတာဘေ့စ်နှင့်သက်ဆိုင်သောပြ issues နာများဖြစ်နိုင်သည်။

4 ။ ဘုံအမှားအယွင်းများနှင့် debugging

  1. SQL syntax အမှား <br> <br> SQL ကြေငြာချက်တွင် syntax အမှားတစ်ခုရှိလျှင် $ stmt-> အမှားသည် "သင့်ရဲ့ SQL syntax တွင်အမှားတစ်ခုရှိသည်" နှင့်တူသောသတင်းအချက်အလက်များကိုပြန်ပို့လိမ့်မည်။ ၎င်းကိုနောက်ဆုံး SQL query ကိုပုံနှိပ်ခြင်းဖြင့်စစ်ဆေးနိုင်သည်။

     echo "SQL မေးမြန်း: " . $sql;
    

    SQL Query များကိုပုံနှိပ်ခြင်းဖြင့်ဒေတာဘေ့စ်မှရရှိသော SQL ထုတ်ပြန်ချက်များကိုတိုက်ရိုက်ကြည့်ရှုနိုင်ပြီး syntax အမှားများကိုရှာဖွေခြင်းနှင့်ပြုပြင်ခြင်းတို့ကိုတိုက်ရိုက်ကြည့်ရှုနိုင်သည်။

  2. parameter သည် binding ပြ problem နာ <br> <br> bind_param တွင် () တွင်ခညျြနှောငျ () ()) တွင်ခညျြနှောငျပထမ ဦး ဆုံးဖြတ်သန်း Parameter သည်နှင့်မကိုက်ညီပါကအမှားတစ်ခုဖြစ်ပေါ်စေနိုင်သည်။ ဥပမာအားဖြင့်, string တစ်ခုသည် Integer အမျိုးအစားတစ်ခုလိုအပ်သည့်အငြင်းပွားမှုကိုပြုလုပ်ပါက $ stmt-> အမှားသည် သက်ဆိုင်ရာအမှားအယွင်းများကိုပြန်ပေးလိမ့်မည်။

  3. ဒေတာဘေ့စ်ဆက်သွယ်မှုဆိုင်ရာပြ issues နာများ အကယ်. ဒေတာဘေ့စ်ဆက်သွယ်မှုသည်မအောင်မြင်ပါက $ Conn-> Connect_Error သည် connection ပျက်ကွက်မှု၏အမှားအယွင်းကိုပြန်လည်ပေးပို့လိမ့်မည်။ ဤအချိန်တွင်ဒေတာဘေ့စ်အိမ်ရှင်, အသုံးပြုသူအမည်, စကားဝှက်စသည့်ပြင်ဆင်မှုအချက်အလက်များကိုစစ်ဆေးရန်လိုအပ်သည်။

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

MySQLI_STMT :: အမှားအယွင်းများကို အသုံးပြု. အမှားများကို UPDATION စစ်ဆင်ရေးများတွင်ထိရောက်စွာဖမ်းယူနိုင်သည်။ ဤအချက်အလက်သည်ဤအချက်အလက်အပေါ် အခြေခံ. အမှားအယွင်းများ နှင့်နောက်ထပ် debugg မှတစ်ဆင့်အသေးစိတ်အမှားအချက်အလက်များကိုရယူရန်ဖြစ်သည်။ ဖွံ့ဖြိုးတိုးတက်မှုလုပ်ငန်းစဉ်အတွင်းအမီလိုက်အမှားများသည်လျှောက်လွှာတည်ငြိမ်မှုနှင့် debugging ထိရောက်မှုကိုသေချာစေရန်အရေးကြီးသောနည်းလမ်းတစ်ခုဖြစ်သည်။

ဤဆောင်းပါးသည် MySQLI_STMTT ကို မည်သို့အသုံးပြုရမည်ကိုပိုမိုနားလည်ရန်သင့်အားပိုမိုနားလည်သဘောပေါက်ရန်ကူညီပေးပါ အကယ်. သင်သည်မည်သည့်ပြ problems နာကိုမဆိုသင်ကြုံတွေ့ရပါကတရားဝင်စာရွက်စာတမ်းများနှင့်တိုင်ပင်ဆွေးနွေးရန်သို့မဟုတ်ဆက်လုပ်ရန်သို့မဟုတ်ဆက်လုပ်ရန်အခမဲ့ဖြစ်ပါစေ။