လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> pdostatement သုံး. ဒေတာပယ်ဖျက်ခြင်း၏စွမ်းဆောင်ရည်ကိုပိုမိုကောင်းမွန်အောင်မည်သို့ပြုလုပ်ရမည်နည်း :: Rowcount

pdostatement သုံး. ဒေတာပယ်ဖျက်ခြင်း၏စွမ်းဆောင်ရည်ကိုပိုမိုကောင်းမွန်အောင်မည်သို့ပြုလုပ်ရမည်နည်း :: Rowcount

gitbox 2025-05-20

နေ့စဉ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်ဒေတာပယ်ဖျက်ခြင်းသည်အလွန်အသုံးများသော်လည်းဂရုတစိုက်ပြုပြင်ခြင်းလုပ်ငန်းတာဝန်လိုအပ်သည်။ အထူးသဖြင့်အကြီးစားဒေတာများပြုပြင်ခြင်းသို့မဟုတ်ကွပ်မျက်မှုစွမ်းဆောင်ရည်လိုအပ်သည့်အခြေအနေများတွင်ဖြစ်ရပ်များတွင်အထူးသဖြင့်ဖျက်ခြင်းလုပ်ငန်းသည်အောင်မြင်မှုအောင်မြင်ရန်နှင့်နောက်ဆက်တွဲယုတ္တိဗေဒကိုဆက်လက်လုပ်ဆောင်ရန်လိုအပ်သည်ကိုတိကျစွာဆုံးဖြတ်ရန်အထူးအရေးကြီးသည်။ ဤအချိန်တွင် PDostatement :: Rowcount function သည်၎င်း၏အခန်းကဏ် play မှပါ 0 င်နိုင်သည်။

1 ။ PDostatement :: Rowcount ကဘာလဲ။

PDostatement :: Rowcount သည် PDO တွင် PDO တွင် SQL တွင် Excles လုပ်ပြီးနောက် ယခင် SQL ကြေညာချက်မှအကျိုးသက်ရောက်သောအတန်းအရေအတွက်ကို ပြန်ပို့ရန်အသုံးပြုသည်။ Deleete , update , ထည့်သွင်းခြင်း စသည်ဖြင့်ဖော်ပြချက်များအတွက်အချက်အလက်များမည်မျှပြောင်းလဲပစ်ရန်သို့မဟုတ်ဖျက်ပစ်ခြင်းကိုအတိအကျပြောပြနိုင်သည်။

 $pdo = new PDO("mysql:host=localhost;dbname=testdb", "user", "password");
$stmt = $pdo->prepare("DELETE FROM users WHERE last_login < :threshold");
$stmt->execute([':threshold' => '2024-01-01']);
$deletedRows = $stmt->rowCount();
echo "စုစုပေါင်းဖျက်ပစ် $deletedRows လိုင်းမှတ်တမ်းများ。";

ဤဥပမာတွင်အသုံးပြုသူဇယားရှိစံနှုန်းများနှင့်ကိုက်ညီသောမှတ်တမ်းများရှိပါက ROWCount () အတန်းမည်မျှဖျက်ပစ်လိုက်ပြီကိုပြန်ပို့နိုင်သည်။

2 ။ ပယ်ဖျက်ခြင်းစစ်ဆင်ရေး၏စွမ်းဆောင်ရည်ကိုတိုးတက်စေရန်အဓိကအချက်များ

1 ။ အဓိပ္ပာယ်မရှိသောဖျက်ခြင်းလုပ်ငန်းများကိုရှောင်ကြဉ်ပါ

အကြိမ်ပေါင်းများစွာကျွန်ုပ်တို့သည်ပရိုဂရမ်၏ယုတ္တိဗေဒတွင်ဖျက်ခြင်းကြေညာချက်ကိုပယ်ဖျက်နိုင်သော်လည်းဒေတာဘေ့စ်ရှိအခြေအနေများကိုဖြည့်ဆည်းပေးသည့်မှတ်တမ်းများမရှိပါ။ ဤအဓိပ္ပာယ်မဲ့သောဖျက်ခြင်းလုပ်ငန်းသည်အမှားတစ်ခုသတင်းပို့နိုင်သော်လည်းဒေတာဘေ့စ်တွင်ဝန်ထုပ်ဝန်ပိုးကိုတိုးစေသည်။

Execute မတိုင်မီနှင့်အပြီးလုပ်ဆောင်မှုမတိုင်မီနောက်ဆက်တွဲယုတ္တိဗေဒကိုသေချာစွာဆုံးဖြတ်ရန် RORGCOUT () ကိုတိကျစွာဆုံးဖြတ်ရန် -

 $stmt = $pdo->prepare("DELETE FROM logs WHERE created_at < :expired_time");
$stmt->execute([':expired_time' => date('Y-m-d H:i:s', strtotime('-30 days'))]);

if ($stmt->rowCount() > 0) {
    // မှတ်တမ်းများကိုဖျက်ပစ်လိုက်ပြီ,နောက်ဆက်တွဲသန့်ရှင်းရေးလုပ်ငန်းများကိုလုပ်ဆောင်နိုင်သည်
    file_get_contents("https://gitbox.net/cleanup-notify");
}

မှတ်တမ်းတစ်ခုသည်အမှန်တကယ်ဖျက်ခြင်းကိုဆုံးဖြတ်ခြင်းရှိမရှိဆုံးဖြတ်ခြင်းအားဖြင့်မလိုအပ်သောဝေးလံခေါင်သီသောခေါ်ဆိုမှုများသို့မဟုတ်အခြားအရင်းအမြစ်စားသုံးမှုကိုရှောင်ရှားသည်

2 ။

Batch Deletion လုပ်ငန်းလည်ပတ်မှုများကိုကိုင်တွယ်သည့်အခါ Select Count (*) စစ်ဆေးမှုများကိုပထမဆုံးအကြိမ်အသုံးပြုပါကဒေတာဘေ့စ်လက်လှမ်းမီမှုနှစ်ခုလိုအပ်သည်။ Rowcount () သည် Execute ပြီးနောက်သက်ရောက်မှုရှိသောအတန်းအရေအတွက်ကိုချက်ချင်းပေးနိုင်သည်။

 $stmt = $pdo->prepare("DELETE FROM temp_data WHERE expire_at < NOW()");
$stmt->execute();

if ($stmt->rowCount() === 0) {
    echo "ဖျက်ပစ်ရန်ဒေတာမရှိပါ。";
} else {
    echo "အောင်မြင်စွာဖျက်ပစ် {$stmt->rowCount()} ယာယီဒေတာ。";
}

ဤနည်းလမ်းသည်မလိုအပ်သောအလုပ်ကိုထပ်ခါတလဲလဲပြုလုပ်ရန်အချိန်ကောင်းသန့်ရှင်းရေး scripts များ၌စာဖြင့်ရေးသားရန်အတွက်အထူးအရေးကြီးသည်။

3 ။ သစ်ထုတ်လုပ်ခြင်းနှင့်စွမ်းဆောင်ရည်ခွဲခြမ်းစိတ်ဖြာခြင်းအကူအညီ

ဒေတာဘေ့စ်လုပ်ငန်းများကိုလုပ်ဆောင်သောအခါဘေးဒဏ်သင့်သည့်အတန်းအရေအတွက်ကိုမှတ်တမ်းတင်ခြင်းသည်ပြ troubl နာဖြေရှင်းခြင်းနှင့်စွမ်းဆောင်ရည်စောင့်ကြည့်လေ့လာခြင်းအတွက်အရေးကြီးသည်။ Regcount ၏ rewcount တန်ဖိုး () သည်စွမ်းဆောင်ရည်မြှင့်တင်ရေးသို့မဟုတ်ယုတ္တိအမှားများကိုရှာဖွေရန်အတွက်အသေးစိတ်မှတ်တမ်းများကိုတည်ဆောက်ရန်အသုံးပြုနိုင်သည်။

 $logMessage = sprintf(
    "[%s] သန့်ရှင်းရေးစစ်ဆင်ရေးပြီးစီးခဲ့သည်,စုစုပေါင်းကိုဖျက်ပါ %d သက်တမ်းကုန်ဆုံး。",
    date('Y-m-d H:i:s'),
    $stmt->rowCount()
);
error_log($logMessage, 3, '/var/log/cleanup.log');

3 ။ အသုံးပြုရန်ကြိုတင်ကာကွယ်မှုများ

RORCOUT () သည် ဒေတာဘေ့စ်အများစုတွင်ကောင်းစွာလုပ်ဆောင်နေစဉ်တွင် Select Provey အတွက်အမြဲတမ်းအလုပ်မလုပ်နိုင်ပါ။ အချို့သောဒေတာဘေ့စ်ယာဉ်မောင်းများတွင် Selected ကြေငြာချက်တစ်ခုတွင် Rowcount () တွင် Calling Rowcount () တွင် 0 င်ပြန်ပို့ပါလိမ့်မည်။ ထို့ကြောင့် ထည့် သွင်း ခြင်း ,