ဒေတာဆုံးရှုံးမှုသည်ဒေတာဘေ့စ်လုပ်ငန်းများလုပ်ဆောင်သောအခါ developer များအတွက်အပြောက်ဆုံးပြ problems နာများထဲမှတစ်ခုဖြစ်သည်။ အသုံးပြုသူအချက်အလက်မွမ်းမံခြင်း, စာရင်းယူမှုဆိုင်ရာယူခြင်း, သို့မဟုတ်အမှာစာအခြေအနေပြုပြင်ခြင်းဆိုသည်မှာ Database စစ်ဆင်ရေးကိုအောင်မြင်စွာမဖော်ထုတ်နိုင်သော်လည်းရှာဖွေတွေ့ရှိခြင်းနှင့်လုပ်ငန်းများ၌မပြုလုပ်ပါက၎င်းသည်ကြီးမားသောအကျိုးဆက်များကိုဖြစ်ပေါ်စေနိုင်သည်။
ဤဆောင်းပါးသည် PDostatement :: Rowcount () နှင့်ဒေတာဘေ့စ်ငွေလွှဲလုပ်ငန်း Rollback ယန္တရားကိုမည်သို့အသုံးပြုရမည်ကိုရှင်းပြပါလိမ့်မည်။
PDostatement :: Rowcount () သည်ယခင် ဖျက်ခြင်း , ထည့်သွင်းခြင်း သို့မဟုတ် နောက်ဆုံးအခြေအနေ မှသက်ရောက်မှုရှိသောအတန်းအရေအတွက်ကိုပြန်လည်ရောက်ရှိစေသည့် PDO တွင်လုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ၎င်းသည်လုပ်ငန်းများသည်ဒေတာဘေ့စ်အပေါ်အမှန်တကယ်အကျိုးသက်ရောက်ခြင်းရှိမရှိဆုံးဖြတ်ရန်ကူညီနိုင်သည်။
သတိပြုသင့်သည်မှာ Database Drivers အားလုံးသည် Calling Rowcount () ကို ရွေးချယ်ခြင်းအတွက် Selecting Orcount () ကိုရွေးချယ်ခြင်းအတွက်အသုံးချခြင်းကိုရွေးချယ်ခြင်းသို့မဟုတ်အချက်အလက်များကိုအောင်မြင်စွာအဆင့်မြှင့်တင်ခြင်းရှိမရှိရှာဖွေရန်အသုံးပြုသည်။
ဆက်စပ်သောဒေတာဘေ့စ်စစ်ဆင်ရေးမျိုးစုံလုပ်ဆောင်သောအခါအဆင့်တစ်ခုသည်မအောင်မြင်ပါကအချက်အလက်ရှေ့နောက်မညီမှုများမှရှောင်ရှားရန်ယခင်အပြောင်းအလဲများကိုနောက်ပြန်လှိမ့်ချထားသင့်သည်။ ဥပမာအားဖြင့်, သင်သည်အသုံးပြုသူ၏အီးမေးလ်လိပ်စာကို update လုပ်လိုလျှင်, မှတ်တမ်းကိုအမှန်တကယ်ပြုပြင်မွမ်းမံခြင်းမရှိသေးပါ။ ထိုအစီအစဉ်သည်နောက်ဆက်တွဲစစ်ဆင်ရေးများဆက်လက်လုပ်ဆောင်နေသည်။
ယခုအချိန်တွင်၎င်းသည်အရောင်းအ 0 ယ်များနှင့် RORCOUT () ကို ပေါင်းစပ်ရန်အထူးအရေးကြီးသည်။
ဒေတာလုံခြုံရေးကိုသေချာစေရန် rowcount () နှင့်အရောင်းအ 0 ယ်များကိုမည်သို့အသုံးပြုရမည်ကိုပြသသည့်လက်တွေ့ကျသောဥပမာတစ်ခုမှာ -
<?php
$dsn = 'mysql:host=localhost;dbname=test_db;charset=utf8mb4';
$user = 'db_user';
$password = 'db_pass';
try {
$pdo = new PDO($dsn, $user, $password, [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
]);
// အသုံးပြုသူစာတိုက်ပုံးကိုကျွန်ုပ်တို့ update လုပ်လိုကြောင်းဆိုပါစို့
$userId = 123;
$newEmail = '[email protected]';
$pdo->beginTransaction();
$stmt = $pdo->prepare("UPDATE users SET email = :email WHERE id = :id");
$stmt->execute([
':email' => $newEmail,
':id' => $userId
]);
// အသုံးပြု rowCount ဒေတာကို updated ရှိမရှိဆုံးဖြတ်ရန်
if ($stmt->rowCount() === 0) {
// အဘယ်သူမျှမမှတ်တမ်းများကိုမွမ်းမံပါပြီ,ပြန်အရောင်းအလှိမ့်
$pdo->rollBack();
echo "အသစ်ပြောင်းခြင်းမအောင်မြင်ပါ,ကိုက်ညီသောအသုံးပြုသူမရှိပါ,ငွေပေးငွေယူကိုပြန်လှိမ့်ခဲ့သည်。";
} else {
// အောင်မြင်စွာအသစ်ပြောင်းခြင်း,တင်သွင်းမှုတင်သွင်း
$pdo->commit();
echo "邮箱အောင်မြင်စွာအသစ်ပြောင်းခြင်း,ငွေပေးငွေယူတင်သွင်းခဲ့တာဖြစ်ပါတယ်。";
}
} catch (PDOException $e) {
if ($pdo->inTransaction()) {
$pdo->rollBack();
}
echo "ဒေတာဘေ့စ်စစ်ဆင်ရေးမအောင်မြင်ပါ:" . $e->getMessage();
}
?>
ငွေပေးငွေယူတစ်ခုစတင်ရန် BeginTransactionAssaction ကို သုံးပါ။
Execute () update ကို execute;
မည်သည့်မှတ်တမ်းကိုမဆိုအမှန်တကယ်မွမ်းမံခြင်းရှိမရှိဆုံးဖြတ်ရန် Rowcount () ကို သုံးပါ။
မှတ်တမ်းများမအသစ်မရှိပါကငွေပေးငွေယူကိုချက်ချင်းပြန်လှိမ့်လိမ့်မည်။
မဟုတ်ရင်လုံခြုံစိတ်ချစွာတင်ပြပါ။
ဤနည်းလမ်းသည်အသစ်ပြောင်းခြင်းလုပ်ငန်းများအတွက်သင့်တော်ရုံသာမကစာရင်းစနစ်များတွင်အလွန်လက်တွေ့ကျသည်။ ဖြတ်တောက်ခြင်း, ဥပမာအားဖြင့်:
နှုတ်ယူခြင်းမအောင်မြင်သည့်အခါအမိန့်အခြေအနေကိုပြန်လှိမ့်ပါ,
Useral Balance မအောင်မြင်ပါကငွေပေးချေမှုမှတ်တမ်းသွင်းခြင်းကိုပြန်လှိမ့်ပါ။
အသုံးပြုသူတစ် ဦး ပျက်ကွက်ခြင်းကိုဖျက်ချိန်တွင် Rollback Log ရေးသားခြင်းလုပ်ငန်းများ။
အသစ်ပြောင်းခြင်း သို့မဟုတ် ဖျက်ခြင်း စစ်ဆင်ရေးအောင်မြင်လိမ့်မည်ဟုဘယ်တော့မှမယူဆဘယ်တော့မှ;
RollBack သေချာစေရန်အရောင်းအ 0 ယ်များကိုအသုံးပြုသည့်အခါခြွင်းချက်များကိုကိုင်တွယ်ရန်သေချာပါစေ။
အမြတ်အစွန်းမြင့်မားသောမှီခိုစစ်ဆင်ရေးများအတွက်ငွေပေးငွေယူတစ်ခုတွင်ခြုံဖို့သေချာပါစေ,
RORCOUT () ပြန်လာ 0 သည် 0 င်မှုသည်ပျက်ကွက်ခြင်းဟုမဆိုလိုပါ။ တစ်ခါတစ်ရံတွင်တန်ဖိုးသည်မပြောင်းလဲသေးပါ။ ဒါပေမယ့်တိကျခိုင်မာတဲ့ဒေတာဇာတ်လမ်းတစ်ပုဒ်မှာတော့အဲဒါကိုငါတို့တားဆီးချင်တဲ့ "မမှန်ကန်သောရေး" အတိအကျပဲ။
PDostatement :: Rowcount () နှင့်အရောင်းအ 0 ယ်ထိန်းချုပ်မှုယန္တရားကိုပေါင်းစပ်ခြင်းအားဖြင့် developer များသည်ဒေတာဘေ့စ်စစ်ဆင်ရေးသည်အမှန်တကယ်အကျိုးသက်ရောက်ခြင်းရှိမရှိကိုပိုမိုတိကျစွာဆုံးဖြတ်နိုင်သည်။ ၎င်းသည်မြင့်မားသောယုံကြည်စိတ်ချရမှုစနစ်များဖွံ့ဖြိုးတိုးတက်ရေးအတွက်မရှိမဖြစ်လိုအပ်သောကျွမ်းကျင်မှုတစ်ခုဖြစ်သည်။
သင်၏စီမံကိန်းတွင်အလားတူပြ problems နာများနှင့်သင်ကြုံတွေ့ဖူးပါသလား။ သင်၏အတွေ့အကြုံကိုမျှဝေရန်မက်ဆေ့ခ်ျတစ်ခုမှထွက်ခွာရန်ကြိုဆိုပါသည်။
သက်ဆိုင်သောတက်(ဂ်)များ:
PDOStatement