လျှောက်လွှာများရေးဆွဲသည့်အခါကျွန်ုပ်တို့သည်ဒေတာဘေ့စ်တွင် Delete မှတ်တမ်းများကိုအသုတ်လုပ်ရန်လိုအပ်လေ့ရှိသည်။ ဖျက်ခြင်းလုပ်ငန်းပြီးဆုံးသွားသောအခါဖျက်ပစ်ထားသောမှတ်တမ်းအရေအတွက်ကိုရရှိရန်လိုအပ်သည်။ PDO (PHP Data Obserts) သည် PHP ရှိအသုံးပြုသောဒေတာဘေ့စ်အသုံးပြုမှုနည်းလမ်းများအနက်မှတစ်ခုဖြစ်သည်။ ၎င်းသည် PDostatement :: Rowcount ()) သည်သက်ရောက်မှုရှိသောအတန်းအရေအတွက်ရရှိရန်နည်းလမ်းဖြစ်သည်။ သို့သော်အသုတ်ဖျက်ခြင်းလုပ်ငန်းများအတွက် PDostatement ကိုအသုံးပြုသည့်အခါ PDostatement :: Rowcount () ကိုဖျက်ရန်မှတ်တမ်းများကိုအသုံးပြုသောအခါအသေးစိတ်အချက်အလက်များရှိသည်။
PDostatement :: Rowcount () နည်းလမ်းသည်မကြာသေးမီကကွပ်မျက်ခံရသော SQL ထုတ်ပြန်ကြေငြာချက်ကိုထိခိုက်သောအတန်းအရေအတွက်ကိုပြန်ပို့သည်။ ၎င်းသည်များသောအားဖြင့်စုံစမ်းမှုစစ်ဆင်ရေး (ဥပမာ, မွမ်းမံခြင်း သို့မဟုတ် ဖျက်ခြင်း ) ပြီးနောက်ထိခိုက်သောအတန်းအရေအတွက်ကိုရရှိရန်အသုံးပြုသည်။
<?php
// ငါတို့မှာတစ်ခုရှိပြီးသားဆိုပါစို့ PDO နမူနာ
$pdo = new PDO('mysql:host=localhost;dbname=testdb', 'root', '');
// စံချိန်ကိုဖျက်ပါ
$stmt = $pdo->prepare("DELETE FROM users WHERE id = :id");
$stmt->bindParam(':id', $id);
$stmt->execute();
// ပယ်ဖျက်ခဲ့သောမှတ်တမ်းအရေအတွက်ကိုရယူပါ
$deletedRows = $stmt->rowCount();
echo "ဖျက်ပါ {$deletedRows} စံချိန်";
?>
သို့သော်အသုတ်တွင်ဖျက်ပစ်သည့်အခါ Rowcount () နည်းလမ်းသည်ကျွန်ုပ်တို့မျှော်လင့်ထားသည့်အတိုင်းဖျက်ထားသောမှတ်တမ်းအရေအတွက်ကိုမပြန်နိုင်ပါ။
Batch Deletion ဖျော်ဖြေတင်ဆက်သည့်အခါ pdostatement မှပြန်လာသောအတန်းအရေအတွက် :: Rowcount () သည် မျှော်လင့်ချက်များနှင့်အတိအကျမကိုက်ညီပါ။ အကြောင်းမှာဤကဲ့သို့သောဒေတာဘေ့စ်အချို့ (ထိုကဲ့သို့သော MySQL ကဲ့သို့သော) သည်မေးမြန်းချက်များကိုဖြည့်ဆည်းသောအခါကွဲပြားခြားနားသောအတန်းများသို့ပြန်ပို့နိုင်သည်။
ဥပမာ MySQL တွင်ပယ်ဖျက်ခြင်း ကိုဖျက်ပစ်ခြင်းသည် တစ်ခါတစ်ရံသုညအတန်းများအပေါ်သက်ရောက်မှုရှိသည်။ သုတ်ဖျက်မှုလုပ်ငန်းများအတွက်ပင်အမှန်တကယ်ဖျက်ထားသောမှတ်တမ်းများကိုသာရေတွက်လိမ့်မည်။ ဤအချိန်တွင် RORCOUT () သည် သုညသို့ပြန်သွားနိုင်သည်, အထူးသဖြင့်စံသတ်မှတ်ချက်များနှင့်ကိုက်ညီသောမှတ်တမ်းများမရှိပါက။
ချိုးဖျက်ခြင်းအတွက်ဖျက်ထားသောမှတ်တမ်းများကိုမှန်ကန်သောမှတ်တမ်းများကိုသေချာစေရန်, အောက်ပါနည်းလမ်းများကိုသင်စဉ်းစားနိုင်သည်။
နည်းတစ်နည်းမှာဖျက်သိမ်းခြင်းလုပ်ငန်းကို ဦး စွာလုပ်ဆောင်ရန်ဖြစ်သည်။ ထို့နောက်ဖျက်လိုက်သောမှတ်တမ်းအရေအတွက်ကိုမေးမြန်းရန်ဖြစ်သည်။ ဖျက် စာကိုဖျက်ပြီးသည့်နောက်တွင်ဖျက်ထားသောမှတ်တမ်းများကိုရယူရန် Select Count () မေးမြန်းမှုကိုပြုလုပ်ပါ။
<?php
// ငါတို့အသက်အရွယ်အားလုံးထက်လျော့နည်းစေချင်သည်ဆိုပါစို့18အသုံးပြုသူများ
$stmt = $pdo->prepare("SELECT COUNT(*) FROM users WHERE age < 18");
$stmt->execute();
$deletedCount = $stmt->fetchColumn();
// ဖျက်ခြင်းဖျော်ဖြေ
$stmt = $pdo->prepare("DELETE FROM users WHERE age < 18");
$stmt->execute();
// ပယ်ဖျက်ခဲ့သောမှတ်တမ်းများကိုအတည်ပြုပါ
echo "ဖျက်ပါ {$deletedCount} စံချိန်";
?>
Batch Deletion လုပ်ငန်းလည်ပတ်မှုတွင်ငွေပေးငွေယူတွင်အချက်အလက်များအားဒေတာများကိုမဖျက်ခင်မှတ်တမ်းအရေအတွက်အတိအကျကိုရရှိရန်သေချာစေသည်။ Delete Operations ကို Delete Operations ကိုဖျော်ဖြေခြင်းအားဖြင့်ငွေပေးချေမှုတစ်ခုအတွက် () အရေအတွက်ကိုရွေးချယ်ခြင်း အားဖြင့်နှစ်ခုအကြားဒေတာရှေ့နောက်ညီညွတ်မှုကိုသေချာစေနိုင်သည်။
<?php
// ငွေပေးငွေယူတစ်ခုစတင်ပါ
$pdo->beginTransaction();
try {
// ပယ်ဖျက်ခြင်းစံနှုန်းများနှင့်ကိုက်ညီသောမှတ်တမ်းများကိုရယူပါ
$stmt = $pdo->prepare("SELECT COUNT(*) FROM users WHERE age < 18");
$stmt->execute();
$deletedCount = $stmt->fetchColumn();
// ဖျက်ခြင်းဖျော်ဖြေ操作
$stmt = $pdo->prepare("DELETE FROM users WHERE age < 18");
$stmt->execute();
// တင်သွင်းမှုတင်သွင်း
$pdo->commit();
// ပယ်ဖျက်ခဲ့သောမှတ်တမ်းများ output ကိုအရေအတွက်
echo "ဖျက်ပါ {$deletedCount} စံချိန်";
} catch (Exception $e) {
// ခြွင်းချက်ဖြစ်ပေါ်လျှင်,ငွေပေးငွေယူပြန်လှိမ့်
$pdo->rollBack();
echo "ဖျက်ခြင်းမအောင်မြင်ပါ: " . $e->getMessage();
}
?>
အရောင်းအ 0 ယ်များကိုအသုံးပြုခြင်းအားဖြင့် deletion လုပ်ငန်းများနှင့်မှတ်တမ်းမှတ်ခြင်းဆိုင်ရာမေးမြန်းချက်များအကြားအချက်အလက်မကိုက်ညီမှုများကိုရှောင်ရှားနိုင်သည်။
အကယ် . သင်သည်ပြန်လာသည့်အတန်းအရေအတွက်ကိုထောက်ခံသည့်ဒေတာဘေ့စ်တစ်ခုကိုသင်အသုံးပြုနေပါကဖျက်ပစ်ထားသောမှတ်တမ်းအရေအတွက်ကိုအတိအကျပြန်ပို့သင့်သည်။ ဒေတာဘေ့စကွပ်မျက်မှုအစီအစဉ်သည်အတန်းအရေအတွက်ကိုအကျိုးသက်ရောက်စေသောအမှားတစ်ခုသို့ပြန်ပို့ပါကအခြေအနေများကိုအခြားနည်းလမ်းများ, မှတ်တမ်းများ, မှတ်တမ်းများ,
ဒေတာများကိုအသုတ်တွင်ဖျက်ပစ်သည့်အခါ pdostatement :: Rowcount () ကို ရယူပါ။
Rowcount () အားဖြင့် ပြန်လာသောအတန်းအရေအတွက်မှာလုံးဝတိကျမှုမရှိပါ။ အထူးသဖြင့်အချို့သော optimized sql စစ်ဆင်ရေးများအတွက်။
Delete Records အရေအတွက်အတိအကျကိုရရှိရန်အတွက်စံသတ်မှတ်ချက်များနှင့်ကိုက်ညီသောမှတ်တမ်းအရေအတွက်ကိုဖျက်ခြင်းမပြုမီရေတွက်ခြင်းဖြင့် ရေတွက် ခြင်းဖြင့်ရယူနိုင်သည်။
အရောင်းအ 0 ယ်များကိုအသုံးပြုခြင်းကိုအသုံးပြုခြင်းသည်စစ်ဆင်ရေးကိုဖျက်ခြင်းနှင့်စစ်ဆင်ရေးကိုဖျက်ပစ်ခြင်းနှင့်အလယ်အလတ်အချက်အလက်များတွင်မကိုက်ညီမှုကိုရှောင်ရှားသည်။
ဤနည်းလမ်းများကိုပေါင်းစပ်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်အသုတ်ဖျက်ခြင်းလုပ်ငန်းများ၌ဖျက်လိုက်သောမှတ်တမ်းအရေအတွက်ကိုပိုမိုတိကျစွာရယူနိုင်ပြီးတည်ငြိမ်မှုနှင့်ကိုက်ညီမှုနှင့်ကိုက်ညီမှုရှိစေရန်။