လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PDostatement :: အရောင်းအ 0 ယ်လုပ်ငန်းများနှင့်အတူ Rowcount ဆက်ဆံရေး

PDostatement :: အရောင်းအ 0 ယ်လုပ်ငန်းများနှင့်အတူ Rowcount ဆက်ဆံရေး

gitbox 2025-05-28

PHP ပရိုဂရမ်တွင် PDO (PHP Data Obserts) တွင်အလွန်အစွမ်းထက်သောဒေတာဘေ့စ် Access အလွှာတစ်ခုဖြစ်သည်။ PDO သည်အသုံး 0 င်သည့်လုပ်ဆောင်ချက်များစွာကိုထောက်ပံ့ပေးသည် ဤဆောင်းပါးသည် PDostatement ၏အခန်းကဏ် role ကိုအသေးစိတ်ဆွေးနွေးရန် :: Rowcount () ကို ငွေသွင်းယူမှုလုပ်ငန်းများ၌ဖော်ပြထားသည်။

1 ။ PDostatement ဆိုတာဘာလဲ .: Rowcount () ?

PDostatement :: Rowcount () သည်မကြာသေးမီကကွပ်မျက်ခံရသော SQL ထုတ်ပြန်ကြေငြာချက်ကိုထိခိုက်သောအတန်းအရေအတွက်ကိုပြန်လည်ရောက်ရှိစေသည့် PDO ၏နည်းလမ်းတစ်ခုဖြစ်သည်။ အထူးသဖြင့်သင်သည်ဒေတာဇယားကိုအကျိုးသက်ရောက်နိုင်သည့်ထည့်သွင်းခြင်း, update, ဖျက်ခြင်းသို့မဟုတ်အခြား SQL ကြေငြာချက်ကိုလုပ်ဆောင်သောအခါ ROWCount () နည်းလမ်းသည်အကျိုးသက်ရောက်မှုရှိသောအတန်းအရေအတွက်ကိုပြန်ပို့သည်။

ဥပမာ -

 <?php
try {
    $pdo = new PDO("mysql:host=localhost;dbname=test", "root", "password");
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    // ငွေပေးငွေယူတစ်ခုစတင်ပါ
    $pdo->beginTransaction();
    
    // update ကိုစစ်ဆင်ရေးလုပ်ဆောင်ပါ
    $stmt = $pdo->prepare("UPDATE users SET email = :email WHERE id = :id");
    $stmt->execute([':email' => '[email protected]', ':id' => 1]);
    
    // ထိခိုက်သောအတန်းအရေအတွက်ကိုရယူပါ
    echo "ထိခိုက်အတန်းအရေအတွက်: " . $stmt->rowCount();
    
    // တင်သွင်းမှုတင်သွင်း
    $pdo->commit();
} catch (Exception $e) {
    // ပြန်အရောင်းအလှိမ့်
    $pdo->rollBack();
    echo "အမှား: " . $e->getMessage();
}
?>

အထက်ဖော်ပြပါဥပမာတွင် UPDATE စစ်ဆင်ရေးကိုလုပ်ဆောင်သောအခါ ဒေါ်လာ stmt-> Rowcount () သည် update လုပ်သည့်အတန်းအရေအတွက်ကိုပြန်ပို့သည်။ ဤတန်ဖိုးကို အခြေခံ. အမှန်တကယ် update ကိုစစ်ဆင်ရေးကိုလုပ်ဆောင်ခြင်းရှိမရှိကိုသင်ဆုံးဖြတ်နိုင်သည်။

2 ။ RORCOUT ၏လျှောက်လွှာ () ငွေပေးချေမှုစစ်ဆင်ရေးအတွက်

အရောင်းအ 0 ယ်လုပ်ငန်းများတွင် Rowcount () နည်းလမ်းသည်အလွန်အရေးကြီးသောကဏ် plays မှပါ 0 င်သည်။

ကြည့်ရှုပါ

  1. ခွဲစိတ်ကုသမှုအောင်မြင်ရန်အတည်ပြုပါ။ ဒေတာဘေ့စ်၏လုပ်ဆောင်မှုများစွာကိုလုပ်ဆောင်သောအခါ RORCOUT () ကို သုံးနိုင်သည်။ Rowcount () သည် 0 သို့ပြန်လာလျှင်၎င်းသည်ဒေတာကိုပြုပြင်မွမ်းမံခြင်းဟုဆိုလိုသည်။ ဤအချိန်တွင်သင်သည်ငွေပေးငွေယူကိုပြန်လှိမ့်ရန်သို့မဟုတ်အခြားစစ်ဆင်ရေးများကိုဆက်လက်လုပ်ဆောင်ရန်ရွေးချယ်နိုင်သည်။

  2. CONCHIMETIMEMICT သို့မဟုတ် ROLLBACK: ငွေပေးငွေယူတွင်ကျွန်ုပ်တို့သည်များသောအားဖြင့် SQL operations များစွာရှိသည်။ အကယ်. မည်သည့်စစ်ဆင်ရေးကိုမဆိုအောင်မြင်စွာမလုပ်ဆောင်နိုင်ပါက ( ထိုအရာသည် 0) 0) သည် 0 င်သည်။

ဥပမာ - Rowcount () ကို ငွေလွှဲခြင်း (သို့) ROLLBACK ကိုဆုံးဖြတ်ရန်ငွေပေးချေမှုကိုအသုံးပြုပါ

 <?php
try {
    $pdo = new PDO("mysql:host=localhost;dbname=test", "root", "password");
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    // ငွေပေးငွေယူတစ်ခုစတင်ပါ
    $pdo->beginTransaction();
    
    // ပထမ ဦး ဆုံးအရေးယူဆောင်ရွက်မှုလုပ်ဆောင်ပါ
    $stmt1 = $pdo->prepare("UPDATE users SET email = :email WHERE id = :id");
    $stmt1->execute([':email' => '[email protected]', ':id' => 1]);
    
    // မည်သည့်အတန်းကိုမွမ်းမံထားရှိမရှိစစ်ဆေးပါ
    if ($stmt1->rowCount() == 0) {
        throw new Exception("အတန်းများမွမ်းမံမှုများမရှိပါ,ပြန်အရောင်းအလှိမ့်");
    }

    // ဒုတိယစစ်ဆင်ရေးလုပ်ဆောင်ပါ
    $stmt2 = $pdo->prepare("DELETE FROM users WHERE id = :id");
    $stmt2->execute([':id' => 2]);

    // Delete စစ်ဆင်ရေးကိုစစ်ဆေးပါ
    if ($stmt2->rowCount() == 0) {
        throw new Exception("အတန်းများကိုဖျက်ပစ်ခြင်းမရှိပါ,ပြန်အရောင်းအလှိမ့်");
    }

    // အားလုံးစစ်ဆင်ရေးအောင်မြင်သောလျှင်,တင်သွင်းမှုတင်သွင်း
    $pdo->commit();
    echo "ငွေပေးငွေယူတင်သွင်းခဲ့တာဖြစ်ပါတယ်";
} catch (Exception $e) {
    // ပြန်အရောင်းအလှိမ့်
    $pdo->rollBack();
    echo "အမှား: " . $e->getMessage();
}
?>

ဒီဥပမာမှာအရစ်ကျတာကိုအရင်စပြီးလုပ်ဆောင်ချက်နှစ်ခုကိုလုပ်ဆောင်တယ်။ အကယ်. မည်သည့်စစ်ဆင်ရေးသည်ဒေတာဘေ့စ်ရှိဒေတာများကိုမထိခိုက်ပါကကျွန်ုပ်တို့သည်ချွင်းချက်တစ်ခုကိုချမှတ်ပြီးငွေပေးငွေယူကိုပြန်လှိမ့်ပါမည်။ ဤသည်သည်အရောင်းအ 0 ယ်တစ်လျှောက်လုံးတွင်စစ်ဆင်ရေးအားလုံးအောင်မြင်မှုရှိစေရန်သေချာသည်။

3 ။ မှတ်စုဖို့အရာ

PDostatement :: Rowcount () သည်များစွာသောကိစ္စရပ်များတွင်အလွန်အသုံးဝင်သည်။ Rowcount () RORCOUT () မှရရှိသောတန်ဖိုးသည်အချို့သောဒေတာဘေ့စ်စနစ်များတွင်အမြဲတမ်းတိကျမှန်ကန်စွာမရှိမဖြစ်ဖြစ်နိုင်သည်။ ဥပမာအားဖြင့်အချို့သောကိစ္စရပ်များတွင် Rowcount () သည် ရွေးချယ်မှုရှာဖွေမှုတစ်ခုကိုကွပ်မျက်သည့်အခါမျှော်လင့်ထားသည့်အတန်းအရေအတွက်ကိုမပြန်နိုင်ပါ။ သို့မဟုတ်နည်းလမ်းအချို့ကိုဒေတာဘေ့စ်များတွင်မထောက်ပံ့နိုင်ပါ။ ထို့ကြောင့် RORCCOUT () ကို အသုံးပြုသောအခါဒေတာဗေ့စ်၏အပြုအမူကိုသေချာစွာနားလည်ရန်သေချာအောင်လုပ်ပါ။

4 ။ အကျဉ်းချုပ်

PDostatement :: Rowcount () function သည် PDO အရောင်းအဝယ်လုပ်ငန်းများ၌အလွန်အရေးကြီးသောအခန်းကဏ် plays မှပါ 0 င်သည်။ Developer များသည် SQL စစ်ဆင်ရေးကိုအောင်မြင်စွာလုပ်ဆောင်နိုင်ပြီးငွေပေးချေမှုကိုကျူးလွန်ခြင်း, အရောင်းအ 0 ယ်များအသုံးပြုခြင်းကိုပေါင်းစပ်ခြင်းအားဖြင့် Rowcount () သည် ဒေတာဘေ့စ်လုပ်ငန်းများနှင့်အချက်အလက်သမာဓိရှိခြင်း၏ရှေ့နောက်ညီညွတ်မှုကိုသေချာစေနိုင်သည်။ အချို့သောကိစ္စရပ်များတွင် Rowcount () သည်လုံးဝယုံကြည်စိတ်ချရသောမဖြစ်နိုင်ပါ။