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

MySQLI_STMT :: Database စစ်ဆင်ရေး၏ယုံကြည်စိတ်ချရမှုကိုတိုးတက်စေရန် MySQLI_STMT :: $ အမှား function ကိုအသုံးပြုနည်း။

gitbox 2025-05-29

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

1 ။ MySQLI_STMMT :: $ အမှား function ကဘာလဲ။

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

2 ။ ငွေပေးငွေယူဆိုတာဘာလဲ

ငွေပေးငွေယူသည်အောင်မြင်မှုသို့မဟုတ်ကျရှုံးခြင်းဖြစ်စေအရေးယူမှုများစုဆောင်းခြင်းဖြစ်သည်။ MySQL ရှိငွေပေးချေမှုစီမံခန့်ခွဲမှုစီမံခန့်ခွဲမှုမျိုးစုံလုပ်ဆောင်သည့်အခါအမှားတစ်ခုဖြစ်သည့်အမှားအယွင်းများဖြစ်ပေါ်နေလျှင်ပင်ကျွန်ုပ်တို့သည်စစ်ဆင်ရေးအခြေအနေကိုပြန်လည်ထူထောင်နိုင်သည်။ ငွေပေးငွေယူတွင်အမျိုးမျိုးသောစစ်ဆင်ရေးများကိုလုပ်ဆောင်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်ကျွန်ုပ်တို့၏အချက်အလက်များ၏ရှေ့နောက်ညီညွတ်မှုနှင့်သမာဓိရှိမှုကိုသေချာစေနိုင်သည်။

MySQL တွင်ငွေပေးချေမှုများကိုအောက်ပါ SQL ထုတ်ပြန်ချက်များမှတဆင့်ထိန်းချုပ်နိုင်သည်။

  • ငွေပေးငွေယူကိုစတင် ပါ ။ ငွေပေးငွေယူကိုစတင်ပါ။

  • ကတိကဝတ် - အပြောင်းအလဲများကိုအမြဲတမ်းပြုလုပ်နိုင်ရန်ငွေပေးချေမှုကိုတင်ပါ။

  • Rollback : ငွေပေးငွေယူကိုပြန်လည်ထုတ်ယူခြင်းနှင့်ငွေပေးငွေယူအတွက်အားလုံးပြောင်းလဲမှုများကိုပယ်ဖျက်ပါ။

3 ။ MySQLI_STMT ကိုပေါင်းစပ်နည်း။

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

MySQLI_STMT ကိုမည်သို့ပေါင်းစပ်ရမည်ဟူသောရိုးရှင်းသောဥပမာတစ်ခုမှာ MySQLI_STMT :: Drash Rollback နှင့်အတူ $ အမှား function ::

 <?php
// ဒေတာဘေ့စ် connection တစ်ခုဖန်တီးပါ
$mysqli = new mysqli("localhost", "username", "password", "database");

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

// ငွေပေးငွေယူတစ်ခုစတင်ပါ
$mysqli->begin_transaction();

try {
    // ပထမစုံစမ်းစစ်ဆေးရေးစစ်ဆင်ရေး
    $stmt = $mysqli->prepare("INSERT INTO users (username, email) VALUES (?, ?)");
    $stmt->bind_param("ss", $username, $email);
    $username = 'johndoe';
    $email = 'johndoe@example.com';
    $stmt->execute();

    // အမှားများကိုစစ်ဆေးပါ
    if ($stmt->error) {
        throw new Exception("တစ် ဦး query ကိုကွပ်မျက်စဉ်အမှားတစ်ခုဖြစ်ပွားခဲ့သည်: " . $stmt->error);
    }

    // ဒုတိယစုံစမ်းမှုစစ်ဆင်ရေး
    $stmt = $mysqli->prepare("UPDATE accounts SET balance = balance - 100 WHERE user_id = ?");
    $stmt->bind_param("i", $user_id);
    $user_id = 1;
    $stmt->execute();

    // အမှားများကိုစစ်ဆေးပါ
    if ($stmt->error) {
        throw new Exception("တစ် ဦး query ကိုကွပ်မျက်စဉ်အမှားတစ်ခုဖြစ်ပွားခဲ့သည်: " . $stmt->error);
    }

    // တင်သွင်းမှုတင်သွင်း
    $mysqli->commit();

    echo "စစ်ဆင်ရေးအောင်မြင်သောဖြစ်ပါတယ်!";

} catch (Exception $e) {
    // အမှားတစ်ခုဖြစ်ပေါ်လျှင်,ပြန်အရောင်းအလှိမ့်
    $mysqli->rollback();
    echo "စစ်ဆင်ရေးပျက်ကွက်: " . $e->getMessage();
}

// ဆက်သွယ်မှုကိုပိတ်ပါ
$mysqli->close();
?>

4 ။ code ခွဲခြမ်းစိတ်ဖြာ

  1. ငွေပေးငွေယူကိုစတင်ပါ။
    ကျွန်ုပ်တို့သည် $ MySQLi-> Instrumransaction () ကိုသုံးသည်။ ငွေပေးငွေယူကိုစတင်ရန်။ ၎င်းသည်နောက်ဒေတာဘေ့စ်လုပ်ငန်းများကိုတူညီသောငွေပေးငွေယူ၌ပြုလုပ်လိမ့်မည်။

  2. ဒေတာဘေ့စ်လုပ်ငန်းများကိုလုပ်ဆောင်ပါ။
    ဒေတာဘေ့စ်စစ်ဆင်ရေးနှစ်ခုပြုလုပ်ရန် MySQLI PROPOCING ဟူသောကြေငြာချက်ကိုသုံးပါ။ ခွဲစိတ်ကုသမှုတစ်ခုစီပြီးနောက်အမှားတစ်ခုဖြစ်ပွားမှုရှိမရှိစစ်ဆေးသည်။ အမှားတစ်ခုဖြစ်ပေါ်ပါကကျွန်ုပ်တို့သည် ခြွင်းချက်အသစ်ကိုပစ်ချ ခြင်းနှင့်ချွင်းချက်ဖြင့်ငွေပေးချေမှုကိုပြန်လှိမ့်ချလိုက်သည်။

  3. အမှားများကိုစစ်ဆေးပါ။
    SQL Execution ကို $ stmt-> အမှား မှတဆင့်ဖျော်ဖြေသောအခါအမှားမက်ဆေ့ခ်ျကိုကျွန်တော်တို့ရရှိပါသည်။ အမှားတစ်ခုဖြစ်ပေါ်ပါကကျွန်ုပ်တို့သည်ချွင်းချက်တစ်ခုချပြီးငွေပေးငွေယူကိုပြန်လှိမ့်ပါမည်။ ဤနည်းအားဖြင့်ယခင်စစ်ဆင်ရေးနှင့်နောက်ဆက်တွဲစစ်ဆင်ရေးနှစ်ခုလုံးသည်အချက်အလက်များ၏ရှေ့နောက်ညီညွတ်မှုကိုသေချာစေရန်ပြန်လည်ရုပ်သိမ်းလိမ့်မည်။

  4. ငွေပေးငွေယူကိုပြန်လှိမ့်
    ခွဲစိတ်ကုသမှုအတွင်းခြွင်းချက်များမဆိုဖမ်းမိပါက MySQLI-> Rollback () ကို အသုံးပြု. ငွေပေးငွေယူကိုပြန်လှိမ့်ပါမည်။ ၎င်းသည်ငွေပေးငွေယူတွင်ပြုလုပ်ထားသောအပြောင်းအလဲများအားလုံးကိုပြန်လည်ပြုပြင်ခြင်းကိုဖယ်ရှားပေးလိမ့်မည်။

  5. တင်သွင်းငွေပေးငွေယူ:
    အကယ်. စစ်ဆင်ရေးအားလုံးကိုအောင်မြင်စွာလုပ်ဆောင်ပါက ဒေါ်လာ MySQLI-> Immit () ကို အသုံးပြု. ငွေပေးငွေယူကိုတင်ပြရမည်။ အပြောင်းအလဲများကိုဒေတာဘေ့စ်သို့အမြဲတမ်းသိမ်းဆည်းထားကြောင်းသေချာစေရန်။

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

MySQLI_STMT :: $ အမှား function ကိုပေါင်းစပ်ခြင်းနှင့်ငွေပေးချေမှု Rollback ယန္တရားကိုပေါင်းစပ်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်ဒေတာဘေ့စ်စစ်ဆင်ရေး၏ယုံကြည်စိတ်ချရမှုကိုသေချာစေနိုင်သည်။ ဒေတာဘေ့စ်စစ်ဆင်ရေးမျိုးစုံလုပ်ဆောင်သောအခါ, စစ်ဆင်ရေးမအောင်မြင်ပါကအချက်အလက်မကိုက်ညီစေရန်ငွေပေးငွေယူကိုပြန်ပို့နိုင်သည်။ ဤနည်းလမ်းသည် code ၏ကြံ့ခိုင်မှုကိုပိုမိုကောင်းမွန်စေသည်သာမကအမှားအယွင်းများပေါ်ပေါက်လာသည့်အခါဒေတာများကိုပျက်စီးစေလိမ့်မည်မဟုတ်ကြောင်းသေချာစေသည်။ ၎င်းသည်ဖွံ့ဖြိုးရေးအတွက်ဘုံအမှားကိုင်တွယ်ပုံဖြစ်သည်။

  • သက်ဆိုင်သောတက်(ဂ်)များ:

    mysqli_stmt