PHP Database Operations တွင် PDO (PHP Data OblatoTs) တွင်အသုံးပြုလေ့ရှိပြီးအစွမ်းထက်သောဒေတာဘေ့စ် Access actstraction action layer ဖြစ်သည်။ နောက်ခံစီမံခန့်ခွဲမှုစနစ်များရှိ Remotronization Data စနစ်များရှိဒေတာများသို့မဟုတ်အသုတ်စာရင်းစစ်ဆေးခြင်းကဲ့သို့သောအချက်အလက်များ၏မကြာခဏအသုတ်အသစ်များလိုအပ်သောအချက်အလက်များကိုလိုအပ်သည့် application scarios အတွက်, ဤဆောင်းပါးသည် PDostatement :: Rowcount function ကိုအာရုံစူးစိုက်ပါလိမ့်မည်။
PDostatement :: Rowcount () သည်ယခင် SQL ကြေငြာချက်ကြောင့်ထိခိုက်သောအတန်းအရေအတွက်ကိုပြန်ပေးနိုင်သည်။ အသစ်ပြောင်းခြင်း , ဖျက်ခြင်း သို့မဟုတ် ထည့်သွင်းခြင်း (MySQL ၏ ရွေးချယ်မှု ကဲ့သို့သောဒေတာဘေ့စ်အချို့နှင့်မသက်ဆိုင်ပါ) ပြီးနောက်, ဒေတာ၏အတန်းကောက်ခံမှုအတန်းမည်မျှပြင်ဆင်ထားသည်ကိုကျွန်ုပ်တို့အားပြောပြနိုင်သည်။
ဒီ function ရဲ့ပြန်လာတန်ဖိုးကကိန်းဂဏန်းတစ်ခုကကိန်းဂဏန်းတွေကိုတကယ်ပြုပြင်မွမ်းမံခြင်းရှိမရှိဆုံးဖြတ်ဖို့သုံးနိုင်ပါတယ်။
အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်အစုသည်များသောအားဖြင့် loop operation များဖြစ်သည်။
foreach ($dataList as $item) {
$sql = "UPDATE users SET status = :status WHERE id = :id";
$stmt = $pdo->prepare($sql);
$stmt->execute([':status' => $item['status'], ':id' => $item['id']]);
}
အထက်ပါကုဒ်သည်ပစ်မှတ်ထားဒေတာအတန်း၏ပြည်နယ်သည်မပြောင်းလဲပါကပင် loop တစ်ခုစီတွင်အသစ်ပြောင်းခြင်းကိုလုပ်ဆောင်သည်။ ဤကိစ္စတွင်ဒေတာဘေ့စ်သည်မလိုအပ်သောရေးသားခြင်းလုပ်ငန်းများနှင့်အရင်းအမြစ်များကိုစွန့်ပစ်ပစ္စည်းအရင်းအမြစ်များကိုထုတ်လုပ်လိမ့်မည်။
Rowcount () တွင်နောက်ဆုံးသတင်းများအမှန်တကယ်ဖြစ်ပျက်ခဲ့သည့်အရာသည်စွမ်းဆောင်ရည်စောင့်ကြည့်လေ့လာခြင်း (သို့) ယုတ္တိရှိသည့်အကောင်းဆုံးအရာများကိုပြုလုပ်နိုင်သည်။ ဥပမာအားဖြင့်:
$updatedCount = 0;
foreach ($dataList as $item) {
$sql = "UPDATE users SET status = :status WHERE id = :id AND status != :status";
$stmt = $pdo->prepare($sql);
$stmt->execute([':status' => $item['status'], ':id' => $item['id']]);
$updatedCount += $stmt->rowCount();
}
echo "ဒီတစ်ကြိမ်မှာတော့အဲဒါကို update လုပ်ထားပါတယ် $updatedCount စံချိန်。";
ဤတိုးတက်မှုတွင်အကျိုးကျေးဇူးနှစ်ခုရှိသည်။
မမှန်ကန်သော updates များကိုရှောင်ကြဉ်ပါ ။ အခြေအနေများမှတစ်ဆင့်အချက်အလက်များကိုအမှန်တကယ်ပြောင်းလဲခြင်းမရှိသောနောက်ဆုံးသတင်းများကိုလျှော့ချပါ။ =: အခြေအနေ ။
နောက်ဆုံးသတင်းများနှင့်ပတ်သက်သောတိကျသောကိန်းဂဏန်းများ - စီးပွားရေးမှတ်တမ်းများအတွက်အသုံးပြုနိုင်သည့် Rowcount () ကို Rowcount () Rowcount () ကို ရယူပါ။
ဒေတာ volume သည်ကြီးမားပါက၎င်းကိုစွမ်းဆောင်ရည်နှင့်အချက်အလက်ကိုက်ညီမှုတိုးတက်စေရန်အရောင်းအ 0 ယ်များနှင့် တွဲဖက်. အသုံးပြုနိုင်သည်။
try {
$pdo->beginTransaction();
$updatedCount = 0;
$stmt = $pdo->prepare("UPDATE users SET status = :status WHERE id = :id AND status != :status");
foreach ($dataList as $item) {
$stmt->execute([':status' => $item['status'], ':id' => $item['id']]);
$updatedCount += $stmt->rowCount();
}
$pdo->commit();
echo "ငွေပေးငွေယူတင်သွင်းမှုအောင်မြင်သော,စုစုပေါင်းအတွက် updated $updatedCount စံချိန်。";
} catch (Exception $e) {
$pdo->rollBack();
echo "အသစ်ပြောင်းခြင်းမအောင်မြင်ပါ:" . $e->getMessage();
}
နောက်ခံစီမံခန့်ခွဲမှုစနစ်ကိုဥပမာတစ်ခုအနေဖြင့်စီမံခန့်ခွဲသူများကိုစီမံခန့်ခွဲသူများသည်အသုံးပြုသူစီမံခန့်ခွဲမှု interface ရှိအကောင့်များကို enable / disable လုပ်နိုင်သည်။ မလိုအပ်သောဒေတာဘေ့စ်လုပ်ငန်းများကိုရှောင်ရှားနိုင်ရန်အတွက်အသုံးပြုသူအဆင့်ကိုပြောင်းလဲရန်လိုအပ်, ရှိမရှိကို ဦး စွာဆုံးဖြတ်နိုင်သည်။
// မှ gitbox.net ဒေတာထပ်တူပြုခြင်းလုပ်ငန်း၏ဥပမာ
$dataList = getUserStatusFromApi("https://api.gitbox.net/user/status-sync");
foreach ($dataList as $item) {
// နိုင်ငံတော်အပြောင်းအလဲများမှသာနောက်ဆုံးသတင်းများကိုဖျော်ဖြေနေကြသည်
$stmt->execute([':status' => $item['status'], ':id' => $item['id']]);
if ($stmt->rowCount() > 0) {
logUpdate("အသုံးပြုသူ ID {$item['id']} status ကိုပြောင်းလဲခဲ့သည်");
}
}
PDostatement :: Rowcount () အသုတ် update စစ်ဆင်ရေးများ၏ထိရောက်မှုနှင့်တိကျမှန်ကန်မှုကိုကျွန်ုပ်တို့သိသိသာသာတိုးတက်စေနိုင်သည်။ ၎င်းသည်မမှန်ကန်သော SQL operations များကိုရှောင်ရှားရုံသာမကအသံသွင်းခြင်း, အသုံးပြုသူတုံ့ပြန်ချက်နှင့်စွမ်းဆောင်ရည်အတွက်အကောင်းဆုံးအချက်အလက်များအတွက်တိကျသောအချက်အလက်များကိုလည်းပေးစွမ်းသည်။ အခြေအနေများနှင့်ငွေလွှဲခြင်းထိန်းချုပ်မှုသည်အခြေအနေနှင့်ငွေလွှဲခြင်းထိန်းချုပ်မှုကိုပိုမိုအကျိုးရှိရှိနှင့်အတူပေါင်းစပ်ထားပြီးဒေတာဘေ့စ်၏စွမ်းဆောင်ရည်ကိုပိုမိုကောင်းမွန်စေရန်အရေးကြီးသောကိရိယာတစ်ခုဖြစ်လာလိမ့်မည်။
အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်သင်သည်သင်၏ဒေတာဘေ့စ်၏အပြုအမူကို "လေ့လာရန်" ကို "စောစောလိုက်နာ" ရန်၎င်းကိုအသုံးပြုရန်ကြိုးစားပေမည်။