PHP တွင် MySQLI extension ကိုအသုံးပြုခြင်း MySQLI_StMT :: $ အမှား သည် MySQLI_STMT :: $ အမှားသည်အလွန်အသုံးဝင်သောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ဒေတာဘေ့စ်လုပ်ငန်းများကိုကျွန်ုပ်တို့လုပ်ဆောင်သောအခါအမှားများသည်အထူးသဖြင့်အဆင့်များစွာလုပ်ဆောင်မှုများတွင်အချက်အလက်မကိုက်ညီပါ။ စစ်ဆင်ရေး၏ယုံကြည်စိတ်ချရမှုကိုသေချာစေရန် MySQLI_STMT :: အမှားအယွင်းများကိုကိုင်တွယ်ရန်အမှားအယွင်းများကိုကိုင်တွယ်ဖြေရှင်းရန်နှင့်အမှားတစ်ခု၏ရှေ့နောက်ညီညွတ်မှုနှင့်သမာဓိရှိရန်နောက်သို့ပြန်လှိမ့်ချိန်တွင်ဒေါ်လာအမှား လုပ်ဆောင်မှုလုပ်ဆောင်မှုကိုသုံးနိုင်သည်။
MySQLI_STMT :: $ အမှား သည် MySQLI_STMT အတန်းထဲတွင်အိမ်ခြံမြေတစ်ခုဖြစ်သည်။ ဤပိုင်ဆိုင်မှုသည် SQL ထုတ်ပြန်ချက်များမှန်ကန်မှုကို debugging နှင့်သေချာစေရန်အလွန်အရေးကြီးသည်။ ၎င်းသည်အမှားအယွင်းများပါ 0 င်သည့် string တစ်ခုနှင့်အမှားမရှိပါ။
ငွေပေးငွေယူသည်အောင်မြင်မှုသို့မဟုတ်ကျရှုံးခြင်းဖြစ်စေအရေးယူမှုများစုဆောင်းခြင်းဖြစ်သည်။ MySQL ရှိငွေပေးချေမှုစီမံခန့်ခွဲမှုစီမံခန့်ခွဲမှုမျိုးစုံလုပ်ဆောင်သည့်အခါအမှားတစ်ခုဖြစ်သည့်အမှားအယွင်းများဖြစ်ပေါ်နေလျှင်ပင်ကျွန်ုပ်တို့သည်စစ်ဆင်ရေးအခြေအနေကိုပြန်လည်ထူထောင်နိုင်သည်။ ငွေပေးငွေယူတွင်အမျိုးမျိုးသောစစ်ဆင်ရေးများကိုလုပ်ဆောင်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်ကျွန်ုပ်တို့၏အချက်အလက်များ၏ရှေ့နောက်ညီညွတ်မှုနှင့်သမာဓိရှိမှုကိုသေချာစေနိုင်သည်။
MySQL တွင်ငွေပေးချေမှုများကိုအောက်ပါ SQL ထုတ်ပြန်ချက်များမှတဆင့်ထိန်းချုပ်နိုင်သည်။
ငွေပေးငွေယူကိုစတင် ပါ ။ ငွေပေးငွေယူကိုစတင်ပါ။
ကတိကဝတ် - အပြောင်းအလဲများကိုအမြဲတမ်းပြုလုပ်နိုင်ရန်ငွေပေးချေမှုကိုတင်ပါ။
Rollback : ငွေပေးငွေယူကိုပြန်လည်ထုတ်ယူခြင်းနှင့်ငွေပေးငွေယူအတွက်အားလုံးပြောင်းလဲမှုများကိုပယ်ဖျက်ပါ။
ဒေတာဘေ့စ်လုပ်ငန်းများကိုလုပ်ဆောင်သောအခါအထူးသဖြင့်ဒေတာအသစ်ပြောင်းခြင်းအဆင့်များပါ 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();
?>
ငွေပေးငွေယူကိုစတင်ပါ။
ကျွန်ုပ်တို့သည် $ MySQLi-> Instrumransaction () ကိုသုံးသည်။ ငွေပေးငွေယူကိုစတင်ရန်။ ၎င်းသည်နောက်ဒေတာဘေ့စ်လုပ်ငန်းများကိုတူညီသောငွေပေးငွေယူ၌ပြုလုပ်လိမ့်မည်။
ဒေတာဘေ့စ်လုပ်ငန်းများကိုလုပ်ဆောင်ပါ။
ဒေတာဘေ့စ်စစ်ဆင်ရေးနှစ်ခုပြုလုပ်ရန် MySQLI PROPOCING ဟူသောကြေငြာချက်ကိုသုံးပါ။ ခွဲစိတ်ကုသမှုတစ်ခုစီပြီးနောက်အမှားတစ်ခုဖြစ်ပွားမှုရှိမရှိစစ်ဆေးသည်။ အမှားတစ်ခုဖြစ်ပေါ်ပါကကျွန်ုပ်တို့သည် ခြွင်းချက်အသစ်ကိုပစ်ချ ခြင်းနှင့်ချွင်းချက်ဖြင့်ငွေပေးချေမှုကိုပြန်လှိမ့်ချလိုက်သည်။
အမှားများကိုစစ်ဆေးပါ။
SQL Execution ကို $ stmt-> အမှား မှတဆင့်ဖျော်ဖြေသောအခါအမှားမက်ဆေ့ခ်ျကိုကျွန်တော်တို့ရရှိပါသည်။ အမှားတစ်ခုဖြစ်ပေါ်ပါကကျွန်ုပ်တို့သည်ချွင်းချက်တစ်ခုချပြီးငွေပေးငွေယူကိုပြန်လှိမ့်ပါမည်။ ဤနည်းအားဖြင့်ယခင်စစ်ဆင်ရေးနှင့်နောက်ဆက်တွဲစစ်ဆင်ရေးနှစ်ခုလုံးသည်အချက်အလက်များ၏ရှေ့နောက်ညီညွတ်မှုကိုသေချာစေရန်ပြန်လည်ရုပ်သိမ်းလိမ့်မည်။
ငွေပေးငွေယူကိုပြန်လှိမ့်
ခွဲစိတ်ကုသမှုအတွင်းခြွင်းချက်များမဆိုဖမ်းမိပါက MySQLI-> Rollback () ကို အသုံးပြု. ငွေပေးငွေယူကိုပြန်လှိမ့်ပါမည်။ ၎င်းသည်ငွေပေးငွေယူတွင်ပြုလုပ်ထားသောအပြောင်းအလဲများအားလုံးကိုပြန်လည်ပြုပြင်ခြင်းကိုဖယ်ရှားပေးလိမ့်မည်။
တင်သွင်းငွေပေးငွေယူ:
အကယ်. စစ်ဆင်ရေးအားလုံးကိုအောင်မြင်စွာလုပ်ဆောင်ပါက ဒေါ်လာ MySQLI-> Immit () ကို အသုံးပြု. ငွေပေးငွေယူကိုတင်ပြရမည်။ အပြောင်းအလဲများကိုဒေတာဘေ့စ်သို့အမြဲတမ်းသိမ်းဆည်းထားကြောင်းသေချာစေရန်။
MySQLI_STMT :: $ အမှား function ကိုပေါင်းစပ်ခြင်းနှင့်ငွေပေးချေမှု Rollback ယန္တရားကိုပေါင်းစပ်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်ဒေတာဘေ့စ်စစ်ဆင်ရေး၏ယုံကြည်စိတ်ချရမှုကိုသေချာစေနိုင်သည်။ ဒေတာဘေ့စ်စစ်ဆင်ရေးမျိုးစုံလုပ်ဆောင်သောအခါ, စစ်ဆင်ရေးမအောင်မြင်ပါကအချက်အလက်မကိုက်ညီစေရန်ငွေပေးငွေယူကိုပြန်ပို့နိုင်သည်။ ဤနည်းလမ်းသည် code ၏ကြံ့ခိုင်မှုကိုပိုမိုကောင်းမွန်စေသည်သာမကအမှားအယွင်းများပေါ်ပေါက်လာသည့်အခါဒေတာများကိုပျက်စီးစေလိမ့်မည်မဟုတ်ကြောင်းသေချာစေသည်။ ၎င်းသည်ဖွံ့ဖြိုးရေးအတွက်ဘုံအမှားကိုင်တွယ်ပုံဖြစ်သည်။
သက်ဆိုင်သောတက်(ဂ်)များ:
mysqli_stmt