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

pdostatement နှင့်ပေါင်းစပ်ခြင်းဖြင့်အရောင်းအ 0 ယ်များတွင်အရောင်းအ 0 ယ်များတွင် RoundBack လုပ်ငန်းများကိုမည်သို့ကိုင်တွယ်ရမည်နည်း :: Rowcount

gitbox 2025-05-28

ဒေတာဘေ့စ်လုပ်ငန်းများအတွက် PDO ကိုအသုံးပြုသောအခါငွေပေးချေမှုအပြောင်းအလဲသည်အလွန်အရေးကြီးသောယန္တရားတစ်ခုဖြစ်သည်။ အရောင်းအ 0 ယ်များသည်များသောအားဖြင့် beginransacingacingaction () , အချို့သော SQL operations များကိုလုပ်ဆောင်သည့်အခါတစ်ခါတစ်ရံတွင်အချို့သောအခြေအနေများအပေါ် အခြေခံ. ငွေပေးငွေယူကိုပြန်လှိမ့်ရန်ဆုံးဖြတ်ရန်လိုအပ်သည်။ ဤအချိန်တွင် pdostatement :: Rowcount function ကိုအသုံးဝင်သည်။

PDostatement :: Rowcount သည် ယခင် SQL ထုတ်ပြန်ကြေငြာချက်ကြောင့်ထိခိုက်သောအတန်းအရေအတွက်ကိုပြန်ပို့နိုင်သည်။ ၎င်းကိုအသုံးပြုခြင်းသည်ဒေတာဘေ့စ်စစ်ဆင်ရေးသည်အောင်မြင်မှုရှိမရှိကိုထိရောက်စွာဆုံးဖြတ်နိုင်သည်။

ငွေပေးငွေယူအပြောင်းအလဲနဲ့အတွက် PDO ကိုသုံးပါ

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

 <?php
// ဒေတာဘေ့စ်ဆက်သွယ်မှု
$dsn = 'mysql:host=localhost;dbname=testdb';
$username = 'root';
$password = '';
$options = [
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
];

// ဖန်တီးPDOကန့်ကွက်
try {
    $pdo = new PDO($dsn, $username, $password, $options);
} catch (PDOException $e) {
    die('Connection failed: ' . $e->getMessage());
}

// ငွေပေးငွေယူတစ်ခုစတင်ပါ
$pdo->beginTransaction();

try {
    // ပထမတစ်ခု executeSQLခဲှစိတ်ကုသ
    $stmt1 = $pdo->prepare('UPDATE users SET balance = balance - 100 WHERE id = :id');
    $stmt1->execute(['id' => 1]);

    // ထိခိုက်သောအတန်းအရေအတွက်ကိုစစ်ဆေးပါ
    if ($stmt1->rowCount() == 0) {
        // အဘယ်သူမျှမအတန်း updated လျှင်,ငွေပေးငွေယူပြန်လှိမ့်
        throw new Exception('အသစ်ပြောင်းခြင်းမအောင်မြင်ပါ,အသုံးပြုသူလက်ကျန်ငွေမလုံလောက်');
    }

    // ဒုတိယ executeSQLခဲှစိတ်ကုသ
    $stmt2 = $pdo->prepare('INSERT INTO transactions (user_id, amount) VALUES (:user_id, :amount)');
    $stmt2->execute(['user_id' => 1, 'amount' => -100]);

    // 检查第二个ခဲှစိတ်ကုသ的影响行数
    if ($stmt2->rowCount() == 0) {
        // သွင်းမအောင်မြင်ပါက,ပြန်အရောင်းအလှိမ့်
        throw new Exception('ငွေပေးငွေယူစံသတ်မှတ်ချက်မအောင်မြင်ပါ');
    }

    // အရာအားလုံးအဆင်ပြေလျှင်,တင်သွင်းမှုတင်သွင်း
    $pdo->commit();
    echo "ငွေပေးငွေယူတင်သွင်းမှုအောင်မြင်သော!";
} catch (Exception $e) {
    // 出现异常时ပြန်အရောင်းအလှိမ့်
    $pdo->rollBack();
    echo "ငွေပေးငွေယူ Loverback,အမှားသတင်းစကား: " . $e->getMessage();
}
?>

ကုဒ်ခွဲခြမ်းစိတ်ဖြာခြင်း

  1. အရောင်းအဖွင့်ခြင်းနှင့်ကျူးလွန်ခြင်း <br> ငွေပေးငွေယူကိုစတင်ရန် $ pdo-> beginningactransaction ( ) ကို သုံးပါ။ ငွေပေးချေမှုကိုကျူးလွန်ရန်အသုံးပြုသည်။ မည်သည့်ပြ problems နာများပေါ်ပေါက်လာပါက $ pdo-> Rollback () ကို အသုံးပြု. ငွေပေးငွေယူကိုပြန်လှိမ့်မည်။

  2. ဆုံးဖြတ်ချက်ချရန် Rowcount ကို သုံးပါ SQL operation တစ်ခုစီပြီးနောက်ကျွန်ုပ်တို့သည်စစ်ဆင်ရေးအောင်မြင်မှုရှိမရှိစစ်ဆေးရန် $ stmt-> Rowcount () ကို အသုံးပြုသည်။ ဥပမာအားဖြင့်, မွမ်းမံချက် ကြေငြာချက်သည်မည်သည့်အတန်း (I.E. မလုံလောက်ခြင်းသို့မဟုတ်အခြေအနေများမလုံလောက်ခြင်းသို့မဟုတ်အခြေအနေများမညီမျှမှု) ကိုမွမ်းမံပါက၎င်းကို Rowcount () Rougcount () ပြန်လည်ထူထောင်ခြင်းဖြင့်ဆုံးဖြတ်နိုင်သည်။

  3. ခြွင်းချက်ကိုင်တွယ် Try-catch statement မှတစ်ဆင့်ကျွန်ုပ်တို့သည်မည်သည့်ခြွင်းချက်ကိုမဆိုဖမ်းယူပြီးငွေပေးငွေယူကိုပြန်လှိမ့်လိုက်သည်။ Rowcount () သည် 0 င်သို့မဟုတ်အခြားအမှားများကိုပြန်လည်ရောက်ရှိပါက ချွင်းချက်အသစ် () ကို ချွင်းချက်ချရန်အစပျိုးလိမ့်မည်။

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

SQL ထုတ်ပြန်ချက်များကိုအောင်မြင်စွာအကောင်အထည်ဖော်နိုင်ခြင်းရှိမရှိဆုံးဖြတ်ရန် Rowcount ကို သုံးပါ

Rowcount () function သည်အလွန်အသုံး 0 င်သည်။ အကယ်. SQL ကြေငြာချက်သည်မည်သည့်အတန်းကိုမဆိုပြုပြင်မွမ်းမံပါက ROWCOUT () သည် 0 ပြန်လာလိမ့်မည်။ Regrocount ၏တန်ဖိုးကို အခြေခံ. ငွေပေးငွေယူကိုပြန်လှိမ့်ရန်မည်သည့်ငွေပေးငွေယူကိုပြန်လှိမ့်ရန်မသင့်ဆုံးဖြတ်နိုင်သည်။

ဥပမာအားဖြင့်ဘဏ်လွှာစစ်ဆင်ရေးတွင်အကောင့်လက်ကျန်ငွေကိုအသစ်ပြောင်းခြင်းနှင့်ငွေပေးငွေယူသည့်သမိုင်းကိုအောင်မြင်စွာထည့်သွင်းခြင်းရှိမရှိကိုကျွန်ုပ်တို့စစ်ဆေးသည်။ အဆင့်မအောင်မြင်ပါကငွေပေးငွေယူသည်အချက်အလက်များ၏ရှေ့နောက်ညီညွတ်မှုနှင့်သမာဓိကိုထိန်းသိမ်းခြင်းကိုပြန်လည်လှိမ့်ချလိမ့်မည်။

အကျဉ်းချုပ်

PDostatement :: Rowcount နှင့် Definition စီမံခန့်ခွဲမှုများကိုပေါင်းစပ်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်ဒေတာဘေ့စ်လုပ်ငန်းများကို PHP applications များတွင်ထိရောက်စွာနှင့်ယုံကြည်စိတ်ချစွာလုပ်ဆောင်နိုင်ပါသည်။ RORCOUT () SQL စစ်ဆင်ရေးများသည်အောင်မြင်မှုရှိမရှိတရားစီရင်ခြင်းကိုအရေးယူရန်အရေးကြီးသောနည်းလမ်းများဖြင့်ကျွန်ုပ်တို့ကိုထောက်ပံ့ပေးသည်။ ပြ Proble နာများပေါ်ပေါက်လာပြီးသည်နှင့်၎င်းတို့အားအချက်အလက်အမှားများကိုရှောင်ရှားရန်အချိန်တန်ပြီ။

ဤနည်းလမ်းကိုအခြေအနေများ, စာရင်းစနစ်များ, စာရင်းစီမံခန့်ခွဲမှုစနစ်များစသည့်ဒေတာရှေ့နောက်ညီညွတ်မှုလိုအပ်သည့်နေရာများတွင်ကျယ်ပြန့်စွာအသုံးပြုနိုင်သည်။